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.  [ 3 posts ] 
Author Message
 Post subject: Hilfe bei Fehlermeldung: PropertyAccessException
PostPosted: Sun Jan 14, 2007 8:23 am 
Newbie

Joined: Sun Jan 14, 2007 5:45 am
Posts: 2
Hallo an die Community !
Ich habe meine erste Applikation nun mit Hibernate angefangen und habe auch gleich mal ein kleines Problem. Ich benutze folgendes:


Hibernate version: 3.2 beta 8
Java Version 1.4


Mapping documents:
TableOriginalManu.hbm.xml:
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="com.***.ma.hibernate">
<class name="TableOriginalManu" table="TABLE_ORIGINAL_MANU">
   <id name ="id" column="ID" >
    <generator class="native">
    </generator>
   </id>
</class>
</hibernate-mapping>


TManu.hbm.xml:
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="com.***.ma.hibernate">
<class name="TManu" table="T_MANU">
   <id name ="id" column="ID" >
    <generator class="native">
    </generator>
   </id>
   <property name ="originalId"  column ="ORIGINAL_ID"  type ="long" />
</class>
</hibernate-mapping>





Hier erfolgt das speichern der Id der einen Tabelle auf die andere
Code:
         Session s = HibernateUtil.currentSession();
         Transaction tx= s.beginTransaction();
         // Hole die id des gewählten Datensatzes aus dem request
         Long loId = new Long(id);

         // Speicherung des Original Datensatzes von T_Manu
         // nach Table_Original_Manu.
         TManu ma = (TManu) s.load(TManu.class, loId); <-- Lade ma Objekt mit der loID
         TableOriginalManu ori = new TableOriginalManu(); <-- Erzeuge neues ori Objekt
         ori.setOriginalId(loId); <-- und setze oriID gleich loID
         s.saveOrUpdate(ori);
         
         // Speichere in TManu die geänderten Kennzahlen
         ma.setOriginalId(ori.getId()); <-- Hier bricht er ab mit der Fehlermeldung
         s.saveOrUpdate(ma);
         tx.commit();



Und dabei erhalte ich folgende Fehlermeldung:
Code:
javax.servlet.ServletException: Null value was assigned to a property of primitive type setter of com.***.ma.hibernate.TManu.originalId
       org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
       org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
       org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
       org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
       org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
       javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
       javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
       com.dreba.ma.start.AuthorisationFilter.doFilter(AuthorisationFilter.java:59)
       com.dreba.ma.start.AuthenticationFilter.doFilter(AuthenticationFilter.java:73)
root cause
org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of com.***.ma.hibernate.TManu.originalId
       org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:46)
       org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:337)
       org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:200)
       org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:3417)
       org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:129)
       org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:842)
       org.hibernate.loader.Loader.doQuery(Loader.java:717)
       org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
       org.hibernate.loader.Loader.doList(Loader.java:2144)
       org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2028)
       org.hibernate.loader.Loader.list(Loader.java:2023)
       org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:393)
       org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
       org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
       org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
       org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
       com.dreba.ma.struts.RctAction.execute(RctAction.java:68)
       org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
       org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
       org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
       org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
       javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
       javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
       com.dreba.ma.start.AuthorisationFilter.doFilter(AuthorisationFilter.java:59)
       com.dreba.ma.start.AuthenticationFilter.doFilter(AuthenticationFilter.java:73)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.



Ich benutze die Oracle Datenbank 9i

Außerdem habe ich hibernate.cglib.use_reflection_optimizer auf false gesetzt!

Hat mir vielleicht jemand sagen was ich da falsch mache?

Gruß
Batok


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jan 15, 2007 10:42 am 
Expert
Expert

Joined: Tue Nov 23, 2004 7:00 pm
Posts: 570
Location: mostly Frankfurt Germany
Dein Primary Key ist vermutlich int statt Integer. Das würde ich nicht machen. Ein primary key kann auch null sein!

_________________
Best Regards
Sebastian
---
Training for Hibernate and Java Persistence
Tutorials for Hibernate, Spring, EJB, JSF...
eBook: Hibernate 3 - DeveloperGuide
Paper book: Hibernate 3 - Das Praxisbuch
http://www.laliluna.de


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jan 18, 2007 10:11 am 
Newbie

Joined: Sun Jan 14, 2007 5:45 am
Posts: 2
Habe Werte nun als Long hinterlegt und es funktioniert wunderbar.

Thx


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 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.