Cześć,
Dotychczas używałem PHP'owego Doctrine, a teraz zacząłem uczyć się Hibernte.
Mam jednak problem, gdyż nowe wiersze, które są dodawane do tabeli mają identyfikator "0". Oczywiście nie wywołuję w Java'owej aplikacji metody setId().
Gdy sprawdzałem kod na bazie MySQL, wszystko było dobrze: kolejne rekordy miały odpowiednio ponumerowane wiersze.
Plik Email.hbm.xml wygląda tak:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- Generated 2013-11-11 07:49:22 by Hibernate Tools 3.6.0 -->
<hibernate-mapping>
<class name="models.Email" table="email" schema="public">
<id name="id" type="int">
<column name="id" />
<generator class="assigned" />
</id>
<many-to-one name="user" class="models.User" fetch="select">
<column name="user_id" not-null="true" />
</many-to-one>
<property name="email" type="string">
<column name="email" length="200" unique="true" />
</property>
</class>
</hibernate-mapping>
A dodawanie rekordu tak:
tx = session.beginTransaction();
Email email = new Email();
email.setEmail("aaaaaaaaaaa");
email.setUser(user2);
session.persist(email);
session.flush();
tx.commit();
Widzicie błąd?
Plik Email.hbm.xml wygenerowałem przez Netbeans'a