Exception Hibernate Netbeans

4 respostas
F

Bom dia a todos,

Estou com um problema que está me consumindo a algum tempo.
Estou usando o netbeans e a pouco tentei utilizar o HQL Editor como proprio tutorial do netbeans, > Botão direito no hibernate.cfg.xml > Run HQL Query.
Ao tentar executar uma query ocorre uma exception.

org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: br.com.x.y.z[br.com.x.y.z.tipos.TipoUsoDescricao]

at org.hibernate.cfg.annotations.CollectionBinder.bindManyToManySecondPass(CollectionBinder.java:1068)

at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:600)

at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:541)

at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:43)

at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1130)

at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:324)

at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1286)

at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)

Já verifiquei o hibernate.cfg.xml e todas as classes estão lá.
Comentei esse atributo da entidade e aconteceu a msm coisa para outra entidade.
Estou mapeando o atributo da seguinte forma:

@ManyToMany(targetEntity = TipoUsoDescricao.class, cascade = {CascadeType.MERGE}, fetch = FetchType.LAZY)
@JoinTable(name = "APS.USOS_DESCRICAO",
joinColumns = {@JoinColumn(name = "PDPL_CD_DES_PET_LAM")},
inverseJoinColumns = {@JoinColumn(name = "USDE_CD_ID")})
private Set<TipoUsoDescricao> tiposUsoDescricao;

Alguem já passou ou viu algo parecido com isso?

Agradeço desde já.

4 Respostas

otaviojava

O problema está na relação com essa classe que aparece no erro.

dá uma olhada: http://www.devmedia.com.br/articles/viewcomp.asp?comp=6628

F

Não vejo o erro no na relação.
Na verdade só consigo v o erro por estar usando uma tabela intermediaria não mapeada. Pq realmente a entidade TipoUsoDescricao n tem referencia a minha classe.
Isso pode ser o motivo para o unmapped class?

otaviojava

Essa sua classe não possue nenhuma relação com nenhuma outra?
O hibernate tem que está visualizando essa tabela intermediária essa informação de alguma forma.
Para fechar essa relação.

F

Ta assim:

Classe X:

@Entity
@Table(name = "DESCR_LAMIN", schema = "APS")
public class X extends implements Serializable {

// outros atributos

@ManyToMany(targetEntity = TipoUsoDescricao.class, cascade = {CascadeType.MERGE}, fetch = FetchType.LAZY)
    @JoinTable(name = "APS.USOS_DESCRICAO",
    joinColumns = {@JoinColumn(name = "PDPL_CD_DES_PET_LAM")},
    inverseJoinColumns = {@JoinColumn(name = "USDE_CD_ID")})
    private Set<TipoUsoDescricao> tiposUsoDescricao;
}

Classe TipoUsoDescricao:

@Entity
@Table(name = "TIPO_DESCRICAO_USO", schema = "APS")
public class TipoUsoDescricao implements Serializable {

@Entity
@Table(name = "TIPO_DESCRICAO_USO", schema = "APS")
public class TipoUsoDescricao extends AbstractBean implements Serializable {

    @Id
    @Column(name = "TIIU_CD_USO_IDENT", nullable = false)
    private Long id;
    @Column(name = "TIIU_NM_USO_IDENT")
    private String nome;
    @Column(name = "TIIU_NM_USO_IDENT_EN")
    private String nomeIngles;
    @Column(name = "TIIU_NR_ORDEM")
    private Integer ordem;

}

Só que o

@JoinTable(name = "APS.USOS_DESCRICAO",joinColumns = {@JoinColumn(name = "PDPL_CD_DES_PET_LAM")},inverseJoinColumns = {@JoinColumn(name = "USDE_CD_ID")})

Faz o join com uma tabela intermediaria que não está mapeada, a tabela USOS_DESCRICAO.
As consultas dentro do sistema funcionam perfeitamente por isso nao entendo o n funcionamento.

Criado 31 de maio de 2011
Ultima resposta 31 de mai. de 2011
Respostas 4
Participantes 2