-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 7 posts ] 
Author Message
 Post subject: Hibernate fügt Spaltenname Bezeichner hinzu
PostPosted: Mon Jan 12, 2009 4:19 am 
Newbie

Joined: Mon Jan 12, 2009 3:59 am
Posts: 6
Hallo,

ich habe folgendes Problem.

Ich führe mittels Hibernate eine Stored procedure auf einer Datenbank aus.
Das mapping für die named Query sieht dabei wie folgt aus:

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 package="hibernate.job">
   <sql-query name="selectExecutionJobs" callable="true">
      <return class="hibernate.job.Job">
         <return-property name="source" column="source" />
         <return-property name="state" column="state" />
         <return-property name="jobs" column="jobs" />
         <return-property name="completed" column="percent" />
      </return>
      { call executionJobs_list( :from, :to, :basic, 0, " ", 0 ) }
   </sql-query>
</hibernate-mapping>


Die Klasse Job ist wie folgt gemapped:

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 package="hibernate.job">
   <class name="Job">
      <composite-id class="hibernate.job.JobPK" name="JobPK" >
         <key-property name="state" column="state"/>
         <key-property name="source" />
      </composite-id>
      <property name="jobs"></property>
      <property name="completed"></property>
   </class>
</hibernate-mapping>


wenn ich nun die named query mit list() abfrage bekomme ich folgende Fehlermeldung:

3515 [UIThread [15on1rlzifktq]] INFO org.hibernate.type.StringType - could not read column value from result set: state0_0_; The column name state0_0_ is not valid.
3515 [UIThread [15on1rlzifktq]] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: S1093
3515 [UIThread [15on1rlzifktq]] ERROR org.hibernate.util.JDBCExceptionReporter - The column name state0_0_ is not valid.

Er hängt an die Spaltennamen also aus irgendeinem Grund 0_0_. Und diese existiert dann nicht.
Kann mir hier jemand weiterhelfen?


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jan 12, 2009 7:33 am 
Newbie

Joined: Mon Jan 12, 2009 7:18 am
Posts: 2
Location: Germany
Hallo,

ich habe nicht so schwer deutsch aber ich verstehe deine Problem.
Dein code ist nicht in "synchron", deine Abfolge ist source, state, jobs und completed in sql-query aber state, source... in die Mapping file und "column" war vergessen in Mapping file auch für "source"

Hier ist ein korrigiert version:

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 package="hibernate.job">
   <sql-query name="selectExecutionJobs" callable="true">
      <return class="hibernate.job.Job">
         <return-property name="source" column="source" />
         <return-property name="state" column="state" />
         <return-property name="jobs" column="jobs" />
         <return-property name="completed" column="percent" />
      </return>
      { call executionJobs_list( :from, :to, :basic, 0, " ", 0 ) }
   </sql-query>
</hibernate-mapping>

und
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 package="hibernate.job">
   <class name="Job">
      <composite-id class="hibernate.job.JobPK" name="JobPK" >
         <key-property name="source" column="source"/>
         <key-property name="state" column="state"/>
      </composite-id>
      <property name="jobs"></property>
      <property name="completed"></property>
   </class>
</hibernate-mapping>


MfG
fehervaria


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jan 12, 2009 8:25 am 
Newbie

Joined: Mon Jan 12, 2009 3:59 am
Posts: 6
Danke für die Antwort. Ich hab es gleich ausprobiert aber er gibt mir nun folgenden Fehler:

3531 [UIThread [jdubi54wgc8t]] INFO org.hibernate.type.StringType - could not read column value from result set: source0_0_; The column name source0_0_ is not valid.
3547 [UIThread [jdubi54wgc8t]] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: S1093
3547 [UIThread [jdubi54wgc8t]] ERROR org.hibernate.util.JDBCExceptionReporter - The column name source0_0_ is not valid.

Scheinbar fragt er nun zuerst die Source Spalte ab. Jedoch immernoch mit dem Zusatz 0_0_ der ja eigentlich nicht da sein sollte, denke ich.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jan 13, 2009 4:31 am 
Newbie

Joined: Mon Jan 12, 2009 7:18 am
Posts: 2
Location: Germany
Hallo,

bitte kopiere deine SQL stored procedure hier. Ich glaube dein column name ist nicht selber wie in Mapping datei..

MfG
fehervaria


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jan 13, 2009 7:08 am 
Newbie

Joined: Mon Jan 12, 2009 3:59 am
Posts: 6
sorry für den Doppelpost


Last edited by s58061 on Tue Jan 13, 2009 7:11 am, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: Tue Jan 13, 2009 7:09 am 
Newbie

Joined: Mon Jan 12, 2009 3:59 am
Posts: 6
Hm es muss wohl eher ein Problem des Composite Keys sein. Wenn ich den entferne und z.B. nur state als id verwende funktionierts. Das sieht dann so aus:

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 package="hibernate.job">
   <class name="Job">
      <id name="state" column="state"></id>
      <property name="source" column="source"></property>
      <property name="jobs" column="jobs"></property>
      <property name="completed"></property>
   </class>
</hibernate-mapping>


Allerdings stimmt so nicht mehr das Ergebnis da die state Spalte als Primärschhlüssel nicht ausreicht.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jan 15, 2009 9:16 am 
Newbie

Joined: Mon Jan 12, 2009 3:59 am
Posts: 6
Mit Hilfe von Annotations hab ich es gelöst bekommen. Verstehe leider trotzdem nicht warum das mit dem Composite Key über hbm nicht funktioniert.

Trotzdem Danke!


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 7 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.