angel96 / Design-Testing1

0 stars 1 forks source link

[Don´t Close Issue] FAQ - Cosas que vamos a poder necesitar de ahora en adelante #48

Closed angel96 closed 5 years ago

angel96 commented 5 years ago

Dadle a editar issue para ver como escribir los caracteres.

Para notacion XML

" " ' ' < <

> & &

angel96 commented 5 years ago

Anotaciones de Entidades

@Entity @Access(AccessType.PROPERTY) @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)

angel96 commented 5 years ago

@Access(AccesType.PROPERTY) > Le decimos a spring que vamos a utilizar los getters y setters.

@Inheritance > Herencia @Inheritance (strategy = InheritanceType.TABLE_PER_CLASS)

@Id > Identificador en la BBDD @GeneratedValue(strategy = GenerationType.TABLE) > Delegamos la estrategia de generar el Id unico a la base de datos.

@Version > Actualizaciones de esa entidad por versión

Cuando redefinimos el equals, el hashcode también.

@Embeddable > Clase embebible. Los atributos se van a meter en la tabla.

@ElementCollection > IMPORTANTE ponerlo si hacemos un collection de datatypes

@OneToMany A B 1 -> 1..*

Composicion > Recordar el ejemplo del ordenador (Para existir un objeto ordenador tiene que existir todos sus componentes)

mappedBy > Poner en una de las dos relaciones Ejemplo: Reviewer (Collection de announcement - OneToMany) y Announcement (El collection de announcement tiene un unico reviewer - ManyToOne)

Unique > @Column(unique = true) Varios uniques > @Table(uniqueConstraints = @UniqueConstraint(columnNames = {"databaseColumn1", "databaseColumn2"}))

@Temporal(TemporalType.TIMESTAMP) > Para fechas

@Transient > Atributos derivados que no queremos persistir.

Con funciones de agregacion (count, match...) > groupBy en la query JPQL Condiciones con funciones de agregacion > having count(r) >= 3

angel96 commented 5 years ago

FIJAROS QUE LA TABLA DE LA SENTENCIA JPQL ESTA ESCRITA CON EL NOMBRE DE LA CLASE JAVA, NO CON EL NOMBRE Y EL FORMATO QUE SE REGISTRA EN MYSQL.

select a from Administrator a ; 1 object selected Actor [name=Administrator1, middleName=Administrator1Middle, surname=Administrator1Surname, photo=https://www.photo.com, email=admin<administrator@>, phone=954152635, numberProfiles=2] domain.DomainEntity::id: int = 44 domain.DomainEntity::version: int = 0 domain.Actor::name: java.lang.String = "Administrator1" domain.Actor::middleName: java.lang.String = "Administrator1Middle" domain.Actor::surname: java.lang.String = "Administrator1Surname" domain.Actor::photo: java.lang.String = "https://www.photo.com" domain.Actor::email: java.lang.String = "admin<administrator@>" domain.Actor::phone: java.lang.String = "954152635" domain.Actor::adress: java.lang.String = "C/Reina Mercedes" domain.Actor::numberProfiles: java.lang.Integer = 2 domain.Actor::account: security.UserAccount = security.UserAccount{id=23, version=0} domain.Actor::profiles: java.util.Collection = [domain.Profile{id=38, version=0}, domain.Profile{id=39, version=0}] domain.Actor::message: java.util.Collection = [] domain.Actor::ban: boolean = false

angel96 commented 5 years ago

@NotBlank lo usamos para cadenas. @NotNull lo utilizamos para comprobar que los tipos no sean nulos.

angel96 commented 5 years ago

Script MySQL

drop database if exists Acme-HandyWork; create database Acme-HandyWork;

drop user 'acme-user'@'%';

drop user 'acme-manager'@'%';

create user 'acme-user'@'%' identified by 'ACME-Us3r-P@ssw0rd';

create user 'acme-manager'@'%' identified by 'ACME-M@n@ger-6874';

grant select, insert, update, delete on Acme-HandyWork. to 'acme-user'@'%'; grant select, insert, update, delete, create, drop, references, index, alter, create temporary tables, lock tables, create view, create routine, alter routine, execute, trigger, show view on Acme-HandyWork. to 'acme-manager'@'%';

angel96 commented 5 years ago

Variables booleanas no pueden comenzar por 'is'. Deben tener otro nombre distinto porque si no el setter no lo coge bien Spring. imagen

angel96 commented 5 years ago

El @autowired se coloca a cada servicio que llamemos imagen

angel96 commented 5 years ago

No colocar ningun toString en las entidades. Provoca StackOverFlow a la hora de cargar el PopulateDatabase

angel96 commented 5 years ago

Si un formulario falla, comprobar que tiene el <form:hidden ... >

angel96 commented 5 years ago

Usar placeholders

angel96 commented 5 years ago

Errata en diapositiva imagen

angel96 commented 5 years ago

Fechas en Spring

ADVERTENCIA: VER ESTA ISSUE EN MODO EDICION Paso 1.

Paso 2.

</form:label>

Paso 3. imagen

angel96 commented 5 years ago

El atributo del formulario:

modelAttribute = "announcement"

El nombre de la variable que le pasamos al metodo controlador:

@Valid Announcement announcement

Tienen que llamarse igual para que la validación en formulario funcione

angel96 commented 5 years ago

Enlaces de Interes:

https://stackoverflow.com/questions/5229023/jquery-check-uncheck-all-checkboxes-with-a-button

http://www.javawebtutor.com/articles/jsp/jstl-foreach-tag.php

http://javascript-tutor.net/jstutor/jstutor_lesson28.html

https://stackoverflow.com/questions/35612821/spring-mvc-ajax-post

angel96 commented 5 years ago

Pagina util para realizar patterns

https://www.debuggex.com/r/EFJ6hmjEF4B78PcA