Javafree
Página Inicial do Fórum > Spring Framework

Could not determine type for: java.util.Set, at table: Usuario, for columns: [org.hibernate.mapping.Column(permissao)]



Criar novo tópico   Responder tópico


  1. alois
    Posts:50


    Comment Arrow

    Publicado em: 20/02/2013 11:22:22

    Olá Pessoal,

    Estou utilizando o livro java para web para desenvolver uma aplicação web com spring security e parei num erro que não consigo resolver.
    Erro console Tomcat:


    Estou pensando que há algo errado em parte do código para a criação da tabela usuario_permissao usando @ElementCollection
    Segue parte do código:


    Pensei também que as libs tivessem com versão errada.
    Conjunto de lib's:
    [list]
    antlr-2.7.7.jar
    aopalliance-1.0.jar
    commons-beanutils-1.8.3.jar
    commons-collections-3.2.1.jar
    commons-digester3-3.2.jar
    commons-logging-1.1.1.jar
    dom4j-1.6.1.jar
    ehcache-1.6.2.jar
    el-api-2.2.jar
    el-impl-2.2.jar
    facelets-taglib-jsf20-spring-3-0.5.jar
    hibernate-annotations.jar
    hibernate-commons-annotations.jar
    hibernate-core.jar
    hsqldb-1.8.0.10.jar
    javassist-3.15.0-GA.jar
    javax.servlet.jsp.jstl-1.2.1.jar
    javax.servlet.jsp.jstl-api-1.2.1.jar
    jboss-logging-3.1.0.GA.jar
    jboss-transaction-api_1.1_spec-1.0.0.Final.jar
    jcl-over-slf4j-1.6.1.jar
    jsf-api.jar
    jsf-impl.jar
    jstl.jar
    jstl-1.2.jar
    logback-classic-0.9.29.jar
    logback-core-0.9.29.jar
    mysql-connector-java-5.1.22-bin.jar
    slf4j-api-1.6.1.jar
    slf4j-simple-1.6.0.jar
    spring-aop-3.0.7.RELEASE.jar
    spring-asm-3.0.7.RELEASE.jar
    spring-beans-3.0.7.RELEASE.jar
    spring-context-3.0.7.RELEASE.jar
    spring-context-support-3.0.7.RELEASE.jar
    spring-core-3.0.7.RELEASE.jar
    spring-expression-3.0.7.RELEASE.jar
    spring-jdbc-3.0.7.RELEASE.jar
    spring-security-acl-3.0.8.RELEASE.jar
    spring-security-config-3.0.8.RELEASE.jar
    spring-security-core-3.0.8.RELEASE.jar
    spring-security-taglibs-3.0.8.RELEASE.jar
    spring-security-web-3.0.8.RELEASE.jar
    spring-tx-3.0.7.RELEASE.jar
    spring-web-3.0.7.RELEASE.jar
    spring-webmvc-3.0.7.RELEASE.jar
    taglib-core-0.4.jar
    [/list]

    Pessoal gostaria da ajuda de vocês para resolver este problema
    Obrigado.



  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 20/02/2013 15:08:59

    No JoinColumn:



    Esse campo usuario é o campo do campo na tabela ou na entidade? Tem que referenciar o campo da entidade.
    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. alois
    Posts:50


    Comment Arrow

    Publicado em: 20/02/2013 15:47:01

    Na verdade é um relacionamento OneToMany feito com @ElementCollection e usuario é a tabela Pai nesta linha onde a tabela usuario_permissao será criada com os campos usuario e permissao. Só que dá problema com o Hibernate quando ele tenta identificar o tipo.



  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 20/02/2013 15:53:19

    Entendi. Favor postar o código completo das classes classes usuário e a outra envolvida no relacionamento.

    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. alois
    Posts:50


    Comment Arrow

    Publicado em: 20/02/2013 16:20:01

    Eis a classe Usuario:
    lembrando que a tabela usuario_permissao será criada automaticamente e está dentro da classe Usuario, que é a classe pai.





  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 20/02/2013 16:30:03

    E quanto a entidade permissão?
    Aproveitando, tem um exemplo de One-to-Many aqui:

    http://www.dzone.com/tutorials/java/hibernate/hibernate-example/hibernate-mapping-one-to-many-using-annotations-1.html
    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 20/02/2013 16:48:17

    E no caso de haver uma entidade permissão, o set não deveria ser:

    private Set<Permissao> permissao = new HashSet<Permissao>();
    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. alois
    Posts:50


    Comment Arrow

    Publicado em: 20/02/2013 17:26:06

    Tá poderia até ser se estivesse usando @OneToMany, mas com @ElementCollection os tipos tem que ser básicos como int, String... Agora será que devo declarar este set no Hibernate.cfg.xml ?



  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 20/02/2013 20:16:46

    Entendi. Estava vendo a documentação dessa anotação. Ela serve para tipos primitivos e também classes.

    Testei seu código usando HSQLDB + EclipseLink (JPA 2.0) e funcionou perfeitamente.

    Provavelmente deve ser alguma lib. No teste eu usei:
    - eclipselink-2.2.0.jar
    - eclipselink-javax.persistence-2.0.jar
    e os jars do hsqldb.
    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 20/02/2013 20:45:25

    Com o Hibernate também foi.

    Usei:
    -hibernate3.jar
    -antrl-2.76.jar
    -commons-collections-3.1.jar
    -dom4j-1.6.1.jar
    -javaassist-3.12.0.GA.jar
    -jta-1.1.jar
    -slf4-api-1.6.1.jar
    -hibernate-jpa-2.0.api-1.0.1.Final.jar

    Cara, acredito que se você adicionar a última lib, talvez sua aplicação funcione.

    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. alois
    Posts:50


    Comment Arrow

    Publicado em: 21/02/2013 10:07:23

    Vou experimentar usar as lib's com a qual você fez o teste.
    Pra informar a você minhas lib's são estas:
    antlr-2.7.7.jar
    aopalliance-1.0.jar
    commons-beanutils-1.8.3.jar
    commons-collections-3.2.1.jar
    commons-digester3-3.2.jar
    commons-logging-1.1.1.jar
    dom4j-1.6.1.jar
    ehcache-1.6.2.jar
    el-api-2.2.jar
    el-impl-2.2.jar
    facelets-taglib-jsf20-spring-3-0.5.jar
    hibernate-annotations.jar
    hibernate-commons-annotations.jar
    hibernate-core.jar
    hsqldb-1.8.0.10.jar
    javassist-3.15.0-GA.jar
    javax.servlet.jsp.jstl-1.2.1.jar
    javax.servlet.jsp.jstl-api-1.2.1.jar
    jboss-logging-3.1.0.GA.jar
    jboss-transaction-api_1.1_spec-1.0.0.Final.jar
    jcl-over-slf4j-1.6.1.jar
    jsf-api.jar
    jsf-impl.jar
    jstl.jar
    jstl-1.2.jar
    logback-classic-0.9.29.jar
    logback-core-0.9.29.jar
    mysql-connector-java-5.1.22-bin.jar
    slf4j-api-1.6.1.jar
    slf4j-simple-1.6.0.jar
    spring-aop-3.0.7.RELEASE.jar
    spring-asm-3.0.7.RELEASE.jar
    spring-beans-3.0.7.RELEASE.jar
    spring-context-3.0.7.RELEASE.jar
    spring-context-support-3.0.7.RELEASE.jar
    spring-core-3.0.7.RELEASE.jar
    spring-expression-3.0.7.RELEASE.jar
    spring-jdbc-3.0.7.RELEASE.jar
    spring-security-acl-3.0.8.RELEASE.jar
    spring-security-config-3.0.8.RELEASE.jar
    spring-security-core-3.0.8.RELEASE.jar
    spring-security-taglibs-3.0.8.RELEASE.jar
    spring-security-web-3.0.8.RELEASE.jar
    spring-tx-3.0.7.RELEASE.jar
    spring-web-3.0.7.RELEASE.jar
    spring-webmvc-3.0.7.RELEASE.jar
    taglib-core-0.4.jar



  1. alois
    Posts:50


    Comment Arrow

    Publicado em: 21/02/2013 11:32:29

    Meu amigo ainda não tá dando certo. O mesmo erro aparece.
    O que podemos tentar?



  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 22/02/2013 05:14:55

    Estranho, fiz aqui e funcionou. Crie uma aplicação a parte, com as libs que eu indiquei. Pode ser a versão que você está usando do hibernate.
    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. alois
    Posts:50


    Comment Arrow

    Publicado em: 25/02/2013 14:40:34

    Você poderia analisar as minhas lib's por favor.Será a versão do eclipse, estou usando a Juno e agora baixei a Juno SR1 pra testar.



  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 26/02/2013 05:15:06

    [quote="alois"]Você poderia analisar as minhas lib's por favor.Será a versão do eclipse, estou usando a Juno e agora baixei a Juno SR1 pra testar.



    Vi que nos seus jar´s não há o:

    -hibernate-jpa-2.0.api-1.0.1.Final.jar

    Que cuida justamente do JPA. Tirei esse jar do meu projeto e ele parou de funcionar com a anotação.
    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. alois
    Posts:50


    Comment Arrow

    Publicado em: 26/02/2013 09:54:24

    Coloquei esta jar também e não funcionou.
    Agora deu este erro aqui no Tomcat.



  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 26/02/2013 10:20:41

    Qual a versão do Hibernate que você está usando?

    No projeto que eu fiz, usei Hibernate 3.0 + JPA 2.0.
    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. alois
    Posts:50


    Comment Arrow

    Publicado em: 26/02/2013 18:18:36

    Estou usando Hibernate 3.6.



  1. alois
    Posts:50


    Comment Arrow

    Publicado em: 26/02/2013 20:27:34

    Meu amigo,
    Através de um professor que tive, havia um problema no hibernate.cfg.xml e através da atualização das lib's (pelo que me pareceu alguma deveria estar corrompida) o Tomcat subiu e a aplicação também. Agora vou testar e verificar o que falta.

    À você também o meu muito obigado pelas dicas, pois através delas pudemos focar na solução do problema.



  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 26/02/2013 22:35:37

    Legal, o importante é que tudo funcionou no final!
    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. Relacionados