miércoles, 15 de abril de 2009

Día 52: EJB y JSF (10ªP) / JBoss-Seam (3ºP)

Hoy comenzamos con un repaso al JPA (lo de las clases persistentes) porque según una encuesta al principio de la clase es lo que más cuesta.

Ejercicio:
El objetivo del ejercicio es realizar más clases persistentes y que se reflejen en la base de datos sin problemas.

  • Primero creamos una clase "Cliente"
    • Debe tener precediendo el nombre de la clase las anotaciones @Entity y @Table(name="clientes") (Puse el nombre de la tabla en plural porque ya existía una del mismo nombre y así en el resto de clases de este ejercicio)
    • La clase debe implementar la clase "Serializable"
    • Crear un atributo de tipo "Long" que es el "id", un atributo "String nombre" y un conjunto de pedidos "Set pedidos"
    • Crear sus getter y setter y precediendo a los getter añadir unas anotaciones:
      • Método getId: @Id y @GeneratedValue
      • Método getPedidos: @OneToMany(mappedBy="cliente"), la tabla clientes estará relacionada con la tabla pedidos como 1-n
      • El resto de métodos: @Column
  • Después creamos la clase "Pedido"
    • Igualmente que en la clase "Cliente" y el nombre de la tabla será "pedidos"
    • Los atributos son "Long id", "Date fecha", "Cliente cliente" y "Set lineas"
    • Las anotacciones encima de los getter:
      • Método getId: @Id y @GeneratedValue
      • Método getCliente: @ManyToOne, y así terminamos la relación con la tabla cliente.
      • Método getLineas: @OneToMany(mappedBy="pedido"), la tabla pedido se relaciona con la tabla lineapedido como 1-n
      • El resto de métodos: @Column
  • Por último creamos la clase "LineaPedido"
    • Lo mismo que en las anteriores y el nombre de la tabla es "lineapedidos"
    • Los atributos son "Long id", "Integer cantidad", "Pedido pedido",y "Disco disco"
    • Las anotaciones encima de los getter:
      • Método getId: @Id y @GeneratedValue
      • Método getPedido y método getDisco: @ManyToOne, ya que la tabla lineapedido termina la relación con pedido y también con la tabla disco (que ya esta creada de ejercicios de días anteriores y que se debe crear en la clase "Disco" su atributo lineas que es un conjunto de LineasPedido y sus métodos y su @OneToMany)

Ejercicio 2:

Lo de ahora consiste en mostrar una lista de discos, con un enlace cada uno y que cada enlace rediriga a una página para editar el nombre del disco.

Editar fecha usando rich:calendar (La fecha situada en el disco) y la fecha nueva que no sea posterior a la fecha de hoy.
Menu desplegable, grupo de musica, discos.

Modelo de rich calendar
Para añadir un calendario teniendo de base la fecha del objeto:
rich:calendar value="#{editaDisco.disco.fecha}" popup="false" datePattern="YY-MM-dd HH:mm" cellwidth="24px" cellHeight="22px" style="width:200px"/

Para añadir un desplegable:
h:selectOneMenu value="#{editaDisco.disco.cantante}"
s:selectItems value="#{listaCantantes.lista}" var="cantante" label="#{cantante.nombre}" noselectionlabel="Selecciona Cantante..."/
s:convertEntity/
/h:selectOneMenu

No hay comentarios:

Publicar un comentario