O seguinte exemplo gera uma exceção “not null” na coluna “numero” da tabela “filho”. A coluna “numero” não deveria ser tratada automaticamente pelo Hibernate? O que será que há de errado nesse código?
<hibernate-mapping>
<class name="Pai" table="pai">
<id name="id" column="id">
<generator class="native">
<param name="sequence">pai_id</param>
</generator>
</id>
<list name="filhos" inverse="true" cascade="all">
<key column="id_pai" not-null="true"/>
<list-index column="numero"/>
<one-to-many class="Filho"/>
</list>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="Filho" table="filho">
<id name="id" column="id">
<generator class="native">
<param name="sequence">filho_id</param>
</generator>
</id>
<many-to-one name="pai" column="id_pai" not-null="true"/>
</class>
</hibernate-mapping>
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
Pai pai = new Pai();
pai.setFilhos(new ArrayList<Filho>());
Filho filho = new Filho();
filho.setPai(pai);
pai.getFilhos().add(filho);
session.save(pai);
session.flush();
session.close();
sessionFactory.close();