Mostrando entradas con la etiqueta jpa. Mostrar todas las entradas
Mostrando entradas con la etiqueta jpa. Mostrar todas las entradas

miércoles, 20 de junio de 2007

Obtener el hibernate Session desde EntityManager

javax.persistence.EntityManager ---------> org.hibernate.Session

Para utizar la API de hibernate desde el EntityManager inyectado desde Seam

@PersistenceContext
private EntityManager em;


Session session = ((HibernateEntityManager) em.getDelegate()).getSession();

miércoles, 13 de junio de 2007

Ejemplo heritance jpa

package es.miao;

import java.io.Serializable;
import javax.persistence.*;

import org.hibernate.validator.Length;
import org.hibernate.validator.NotNull;

@Entity
@Table(name = "color_primaria")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="tipo", discriminatorType=DiscriminatorType.STRING, length=3)
@DiscriminatorValue(value="PRI")
public class CombinacionColorPrimaria implements Serializable {

//seam-gen attributes (you should probably edit these)
private Long id;
private Integer version;
private Color color;

//add additional entity attributes

//seam-gen attribute getters/setters with annotations (you probably should edit)

@Id @GeneratedValue
public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

@Version
public Integer getVersion() {
return version;
}

private void setVersion(Integer version) {
this.version = version;
}

@ManyToOne
public Color getColor() {
return color;
}

public void setColor(Color color) {
this.color = color;
}


}


package es.miao;

import java.io.Serializable;
import javax.persistence.*;

import org.hibernate.validator.Length;

@Entity
@DiscriminatorValue(value="SEC")
public class CombinacionColorSecundaria extends CombinacionColorPrimaria implements Serializable {






}

DiscriminatorColumn problem

@DiscriminatorColumn(name="tipo", discriminatorType=DiscriminatorType.STRING, length=20)
@DiscriminatorValue(value="PRIM")

No hay que poner en la clase java la propiedad!

anotaciones colecciones persistencia

@OneToMany(mappedBy="aplicacion", cascade=CascadeType.ALL)
public List getPiezas() {
return piezas;
}

@ManyToOne
public Aplicacion getAplicacion() {
return this.aplicacion;
}



@ManyToMany(targetEntity=GrupoMusica.class)
@JoinTable(name="MUSICOSENGRUPO",
joinColumns=
@JoinColumn(name="musico_ID", referencedColumnName="id"),
inverseJoinColumns=
@JoinColumn(name="grupo_ID", referencedColumnName="id"))
public List getGrupos() {
return grupos;
}


@ManyToMany(targetEntity=Musico.class)
@JoinTable(name="MUSICOSENGRUPO",
joinColumns=
@JoinColumn(name="grupo_ID", referencedColumnName="id"),
inverseJoinColumns=
@JoinColumn(name="musico_ID", referencedColumnName="id"))
public List getMusicos() {
return musicos;
}