Criteria e Chave Composta

0 respostas
J

O problema que estou tendo somente e quando tenho uma chave primary key composta sendo ela uma foreign key.
Quando na entidade so tenho a foreign key sem ser composta funciona normal.

/<em>-----------------------Manutencao----------------------</em>/

PesInstituicao pesinstituicao = new PesInstituicao();

List listapesinstituicao = new ArrayList();

pesinstituicao.abrirSessao();

pesinstituicao.iniciarTransacao();

Criteria select = pesinstituicao.getSession().createCriteria(PesInstituicao.class, a);

select.createAlias(a.id.iddefinicao, b)

.add(Restrictions.eq(b.id, Integer.parseInt(300)));

pesinstituicao.fecharTransacao();

listapesinstituicao = select.list();

for (PesInstituicao j : listapesinstituicao) {

System.out.println(j.getId().getIddefinicao().getRazaosocial() + " - " + j.getId().getIddefinicao().getId());

}

pesinstituicao.fecharSessao();

/*-------------------------FIM MANUTENÇÃO ---------------------------- */

E as minhas entidades sao essas ?

@Embeddable

public class PrkPesInstituicao implements Serializable{

@ManyToOne(cascade={CascadeType.PERSIST, CascadeType.MERGE})

@JoinColumn(name = iddefinicao)

@NotNull

private PesDefinicao iddefinicao;

@ManyToOne(cascade={CascadeType.PERSIST, CascadeType.MERGE})

@JoinColumn(name = id)

@NotNull

private PesDefinicao id;

//estao gerados os getters e setters    }

//----------------- FIM PrkPesInstituicao----------------------------------------------

@Entity

@Table(name=Pes_Instituicao)

public class PesInstituicao extends DAOHibernate{

@EmbeddedId

private PrkPesInstituicao id;

@NotNull

private Integer idvinculo;

//Getter e Setters

}

//----------------- FIM - PesInstituicao----------------------------------------------

@Entity

@Table(name = Pes_Definicao)

public class PesDefinicao extends DAOHibernate{

@Id

private Integer id;

private Integer re;

//Getter e Setters

}

//----------------- FIM - PesDefinicao----------------------------------------------

Exception in thread main org.hibernate.exception.GenericJDBCException:

could not execute query

at

org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)

at

org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)

at

org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)

at org.hibernate.loader.Loader.doList(Loader.java:2223)

at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)

at org.hibernate.loader.Loader.list(Loader.java:2099)

at

org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94)

at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)

at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)

at

br.inf.atena.hibernate.manutencao.Manutencao.main(Manutencao.java:142)

Caused by: org.firebirdsql.jdbc.FBSQLException: GDS Exception.

335544569. Dynamic SQL Error

SQL error code = -206

Column unknown

B1_.ID

At line 1, column 1135.

at

org.firebirdsql.jdbc.AbstractPreparedStatement.(AbstractPreparedStatement.java:127)

at

org.firebirdsql.jdbc.FBPreparedStatement.(FBPreparedStatement.java:41)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown

Source)

at java.lang.reflect.Constructor.newInstance(Unknown Source)

at

org.firebirdsql.jdbc.FBStatementFactory.createPreparedStatement(FBStatementFactory.java:90)

at

org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:869)

at

org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:824)

at

org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:817)

at

org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:293)

at

org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:505)

at

org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:423)

at

org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)

at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)

at org.hibernate.loader.Loader.doQuery(Loader.java:673)

at

org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)

at org.hibernate.loader.Loader.doList(Loader.java:2220)

 6 more
Criado 14 de fevereiro de 2008
Respostas 0
Participantes 1