Hi zusammen!
Ich nutze Oracle 10 und Hibernate 3.
Wenn ich über eine Query eine Abfrage starte, wird als Primary Key immer 0 zurückgeliefert.
Zum Beispiel
Code:
Session session = factory.openSession();
List lstDbAlarm = session.createQuery("from Alarm").list();
Iterator itDbAlarm = lstDbAlarm.iterator();
while (itDbAlarm.hasNext())
{
Alarm alarm = (Alarm) itDbAlarm.next();
System.out.println("Alarm id = "+Al.getId()); // Immer 0
}
Mapping:
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="de.database.Alarm" table="Alarm">
<id column="id" type="int">
<generator class="native"/>
</id>
<property name="text" column="text" type="string" />
</class>
</hibernate-mapping>
Code:
public class Alarm
{
public int id;
public String text;
public Alarm()
{
}
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String getText()
{
return text;
}
public void setText(String text)
{
this.text = text;
}
}
Kann mir jemand erklären, wieso?
Ich habe zwar gesehen, dass man die Id mit
Code:
int id = Integer.parseInt(session.getIdentifier(alarm).toString());
auslesen kann, aber es kann doch nicht Sinn der ganzen Sache sein, immer diesen Umweg zu gehen?