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.

Foi útil?

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
scroll top