Hibernate: Primary Key immer 0

TimoTH

Mitglied
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?
 
Zuletzt bearbeitet:
Hi!

Vielleicht liegt es am fehlenden Attribute "name" bzw. sollte das Attribute "type" ausgeschrieben sein ...

Code:
<class name="de.database.Alarm" table="Alarm">
	<id name="id" column="id" type="integer">
		<generator class="native"/>
	</id>
</class>

Auszug aus der Hibernate-Doku
The id element is the declaration of the identifer property, name="id" declares the name of the Java property - Hibernate will use the getter and setter methods to access the property.

Vielleicht hat's geholfen!

Marco
 

Neue Beiträge

Zurück