Como faço uma busca com chaves compostas neste caso???
@Entity
@Table(name="aloca_turma_sala")
public class Aloca implements Serializable{
@EmbeddedId
private AlocaPK id;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumns(value={
@JoinColumn(name="codsala",insertable=false,updatable=false),
@JoinColumn(name="codcampus",insertable=false,updatable=false),
@JoinColumn(name="codbloco",insertable=false,updatable=false),
@JoinColumn(name="codpavimento",insertable=false,updatable=false),
})
private Sala sala;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="codturma",insertable=false,updatable=false)
private Turma turma;
@Column(name="horainicio",insertable=false,updatable=false)
private String horaInicio;
@Column(name="horafim",insertable=false,updatable=false)
private String horaFim;
@Column(name="diasemana",insertable=false,updatable=false)
private String diaSemana;
@Embeddable
public class AlocaPK implements Serializable{
@Column(name="codcampus")
private String codCampus;
@Column(name="codbloco")
private String codBloco;
@Column(name="codpavimento")
private Long codPavimento;
@Column(name="codsala")
private String codSala;
@Column(name="codturma")
private String codTurma;
@Column(name="horainicio")
private String horaInicio;
@Column(name="horafim")
private String horaFim;
@Column(name="diasemana")
private String diaSemana;
Eu tento assim:
AlocaPK id = new AlocaPK();
id.setCodBloco(codbloco);
id.setCodCampus(codcampus);
id.setCodPavimento(codpavimento);
id.setCodSala(codsala);
id.setCodTurma(matriculado.getId().getCodTurma());
id.setDiaSemana(diasemana);
id.setHoraFim(horafim);
id.setHoraInicio(horainicio);
Aloca aloca = new Dao<Aloca>(session,Aloca.class).procura(id);
Dao:
public T procura(Serializable id) {
return (T) session.load(this.classe, id);
}
O erro:
org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [br.unig.scif.modelo.Aloca#br.unig.scif.modelo.AlocaPK@1b1b1f0]
at org.hibernate.impl.SessionFactoryImpl$1.handleEntityNotFound(SessionFactoryImpl.java:375)
at org.hibernate.proxy.AbstractLazyInitializer.checkTargetState(AbstractLazyInitializer.java:79)
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:68)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:172)
at br.unig.scif.modelo.Aloca$$EnhancerByCGLIB$$6791699a.getId(<generated>)
at br.unig.scif.bean.AlocaBean.unirTurmasAction(AlocaBean.java:298)
Alguem me socorre ae!!!