Criando objeto a partir do mapeamento de hibernato
-
12-09-2019 - |
Pergunta
Se eu tiver um mapeamento assim:
<class name="Users" table="users">
<id column="id" name="id">
<generator class="native"/>
</id>
...
<set name="types" table="types" cascade="all">
<key column="user_id" />
<element column="type_name" type="string" />
</set>
</class>
Como o objeto do usuário deve ser criado? Eu fiz isso:
User u = new User();
u.getType().add(new Type(type_name));
getHibernateTemplate().save(u);
Mas haverá o erro java.lang.ClassCastException: Type
. A classe Type tem apenas um número inteiro user_id
e string type_name
nele com get/set.
Por que não funciona? Onde posso encontrar documentação sobre os objetos salvadores com a coleção de elementos? Muito obrigado.
Solução
Dê uma olhada em http://docs.jboss.org/hibernate/stable/core/reference/en/html/collection.html.
Altere o elemento para:
<element column="type_name" type="Type" />
Em seguida, você pode adicionar tipos ao conjunto. No momento, você o definiu como string.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow