-->
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.  [ 1 post ] 
Author Message
 Post subject: session.update and session.saveOrUpdate fails
PostPosted: Fri Sep 17, 2004 6:33 am 
Newbie

Joined: Fri Oct 17, 2003 6:11 am
Posts: 15
I have a problem, using saveOrUpdate or update methods, my DB isn't written.
No error messages are returned, No rollbacks happen.

Do you have any ideas?



Hibernate version:
2.1.4
Mapping documents:
<!DOCTYPE hibernate-mapping SYSTEM "C:\java\eclipse\workspace\portal\hibernate-mapping-2.0.dtd">
<hibernate-mapping default-cascade="save-update" package="it.rvspm.siscotel.portal.dao">
<!-- WebObject Class -->
<class name="it.rvspm.siscotel.portal.dao.WebObject" table="WEBOBJECT">
<meta attribute="extends">
it.rvspm.siscotel.portal.dao.AbstractWebObject
</meta>
<id name="id" type="long">
<column name="id"/>
<generator class="native"/>
</id>
<property name="published" type="boolean"/>
<property name="template" type="string"/>
<!-- Metadata -->
<property name="createdby" type="string"/>
<property name="itemType" type="string"/>
<property name="created" type="date"/>
<property name="expire" type="date"/>
<property name="modified" type="date"/>
<property name="modifiedby" type="string"/>
<!-- More then one??? -->
<property name="category" type="string"/>
<!-- Nome del comune -->
<property name="owner" type="string"/>

<joined-subclass name="it.rvspm.siscotel.portal.dao.Page" table="PAGE">
<key column="id" foreign-key="pageId"/>
<property name="title" type="string"/>
<property name="name" type="string"/>
<property name="navBarposition" type="long"/>
<set name="pubblications" inverse="true" cascade="all" order-by="horizzontalposition asc">
<key column="page"/>
<one-to-many class="it.rvspm.siscotel.portal.dao.Pubblication"/>
</set>
<set name="subpages" >
<key column="superpage"/>
<one-to-many class="it.rvspm.siscotel.portal.dao.Page"/>
</set>
</joined-subclass>

<joined-subclass name="it.rvspm.siscotel.portal.dao.Content" table="CONTENT">
<key column="id" foreign-key="contentId"/>
<property name="title" type="string"/>
<bag name="pubblications" inverse="true" cascade="all">
<key column="content"/>
<one-to-many class="it.rvspm.siscotel.portal.dao.Pubblication"/>
</bag>
<joined-subclass name="it.rvspm.siscotel.portal.dao.Article" table="ARTICLE">
<key column="id" foreign-key="articleId"/>
<property name="body" type="string"/>
</joined-subclass>
<joined-subclass name="it.rvspm.siscotel.portal.dao.News" table="NEWS">
<key column="id" foreign-key="newsId"/>
<property name="body" type="string"/>
</joined-subclass>
</joined-subclass>

<joined-subclass name="it.rvspm.siscotel.portal.dao.Pubblication" table="PUBBLICATION">
<key column="id" foreign-key="pubblicationId"/>
<property name="verticalposition" type="int"/>
<property name="horizzontalposition" type="long"/>
<many-to-one name="page" class="it.rvspm.siscotel.portal.dao.Page"/>
<many-to-one name="content" class="it.rvspm.siscotel.portal.dao.Content"/>
</joined-subclass>
<!--
<joined-subclass name="it.rvspm.siscotel.portal.dao.StructLink" table="STRUCTLINK">
<key column="id" foreign-key="structlinkId"/>
<property name="type" type="string"/>
<many-to-one name="sourcePage" class="it.rvspm.siscotel.portal.dao.Page"/>
<many-to-one name="destinationPage" class="it.rvspm.siscotel.portal.dao.Page"/>
<joined-subclass name="it.rvspm.siscotel.portal.dao.Section" table="SECTIONS">
<key column="id" foreign-key="sectionsId"/>
only one parent page contrined managed by applications
</joined-subclass>
</joined-subclass> -->
</class>

</hibernate-mapping>

Code between sessionFactory.openSession() and session.close():
Transaction tx = null;
Session session = null;
List pubblications=null;

try {

Logger.getLogger(loggerName).debug("moveDown : "+pubblication);
session = factory.openSession();
tx = session.beginTransaction();

pubblications = session.createCriteria(Pubblication.class).addOrder(Order.desc("horizzontalposition")).list();

Logger.getLogger(loggerName).debug("getPubblication pubblications.size: "+pubblications.size());
Logger.getLogger(loggerName).debug("getPubblication pubblications: "+pubblications);

Iterator iter = pubblications.iterator();
Pubblication upperPubblication = null;
while ( iter.hasNext() ) {
Pubblication pub = (Pubblication)iter.next();
Logger.getLogger(loggerName).debug("upperPubblication : "+upperPubblication);
Logger.getLogger(loggerName).debug("pub : "+pub);

if (pub.getId().equals(pubblication.getId()) && upperPubblication != null){

Logger.getLogger(loggerName).debug("Before pub.getHorizzontalposition() : "+pub.getHorizzontalposition());
Logger.getLogger(loggerName).debug("Before upperPubblication.getHorizzontalposition() : "+upperPubblication.getHorizzontalposition());

long upperHorizontalPosition = upperPubblication.getHorizzontalposition();
upperPubblication.setHorizzontalposition(pub.getHorizzontalposition());
pub.setHorizzontalposition(upperHorizontalPosition);
Logger.getLogger(loggerName).debug("pub.getHorizzontalposition() : "+pub.getHorizzontalposition());
Logger.getLogger(loggerName).debug("upperPubblication.getHorizzontalposition() : "+upperPubblication.getHorizzontalposition());
session.saveOrUpdate(pub);
session.saveOrUpdate(upperPubblication);
break;
}
upperPubblication = pub;
}//while
tx.commit();
.... .... ....
finally {
if (session != null)session.close();
}

Full stack trace of any exception that occurs:
No errors or exception

Name and version of the database you are using:
MSQL recent , with jtds driver

The generated SQL (show_sql=true):

I don't see any SQL update statements, the follow is my output, look where is the message "move up committed" is witten:

12:29:45,148 DEBUG PubblicationMain:235 - Before pub[id=62].getHorizzontalposition() : 18
12:29:45,148 DEBUG PubblicationMain:236 - Before upperPubblication[id=59].getHorizzontalposition() : 17
12:29:45,148 DEBUG PubblicationMain:241 - pub[id=62].getHorizzontalposition() : 17
12:29:45,148 DEBUG PubblicationMain:242 - upperPubblication[id=59].getHorizzontalposition() : 18
12:29:45,148 DEBUG PubblicationMain:246 - move up committed

Debug level Hibernate log excerpt:
debug level is very verbose, nad almost impossible for me to understand, I put here only the last part:

12:31:13,361 DEBUG SessionImpl:1371 - saveOrUpdate() persistent instance
12:31:13,361 DEBUG Cascades:506 - done processing cascades for: it.rvspm.siscotel.portal.dao.Pubblication
12:31:13,361 DEBUG SessionImpl:2435 - Flushing entities and processing referenced collections
12:31:13,361 DEBUG SessionImpl:2880 - Collection found: [it.rvspm.siscotel.portal.dao.Page.pubblications#69], was: [it.rvspm.siscotel.portal.dao.Page.pubblications#69]
12:31:13,361 DEBUG SessionImpl:2880 - Collection found: [it.rvspm.siscotel.portal.dao.Page.subpages#69], was: [it.rvspm.siscotel.portal.dao.Page.subpages#69]
12:31:13,361 DEBUG SessionImpl:2880 - Collection found: [it.rvspm.siscotel.portal.dao.Content.pubblications#70], was: [it.rvspm.siscotel.portal.dao.Content.pubblications#70]
12:31:13,361 DEBUG SessionImpl:2776 - Processing unreferenced collections
12:31:13,361 DEBUG SessionImpl:2790 - Scheduling collection removes/(re)creates/updates
12:31:13,361 DEBUG SessionImpl:2266 - Flushed: 0 insertions, 0 updates, 0 deletions to 3 objects
12:31:13,361 DEBUG SessionImpl:2271 - Flushed: 0 (re)creations, 0 updates, 0 removals to 3 collections
12:31:13,361 DEBUG Printer:75 - listing entities:
12:31:13,361 DEBUG Printer:82 - it.rvspm.siscotel.portal.dao.Page{created=17 settembre 2004, title=titleTest, owner=null, expire=null, category=null, subpages=[], template=templateTest, modifiedby=null, itemType=Page, id=69, modified=null, pubblications=[Pubblication#71], published=false, createdby=null, name=nameTest, navBarposition=0}
12:31:13,361 DEBUG Printer:82 - it.rvspm.siscotel.portal.dao.Pubblication{created=17 settembre 2004, owner=null, expire=null, category=null, template=null, content=Article#70, itemType=Pubblication, modifiedby=null, horizzontalposition=21, id=71, modified=null, page=Page#69, published=false, verticalposition=0, createdby=null}
12:31:13,361 DEBUG Printer:82 - it.rvspm.siscotel.portal.dao.Article{created=17 settembre 2004, title=null, owner=null, expire=null, template=templateTest, category=null, itemType=Article, modifiedby=null, id=70, modified=null, pubblications=[Pubblication#71], published=false, createdby=null, body=bodyTest}
12:31:13,361 DEBUG SessionImpl:2355 - executing flush
12:31:13,361 DEBUG SessionImpl:2820 - post flush
12:31:13,376 DEBUG SessionImpl:585 - transaction completion
12:31:13,376 DEBUG SessionImpl:573 - closing session
12:31:13,376 DEBUG SessionImpl:3332 - disconnecting session
12:31:13,376 DEBUG SessionImpl:585 - transaction completion

Do you understand where I'm wrong?
Thanks in advance
Stefano


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

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.