<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Golden Hibernate</title>
	<atom:link href="http://blog.xebia.com/2006/10/02/golden-hibernate/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.xebia.com/2006/10/02/golden-hibernate/</link>
	<description></description>
	<lastBuildDate>Thu, 18 Mar 2010 13:27:36 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Hibernate , rich clients and long running sessions &#171; Blog</title>
		<link>http://blog.xebia.com/2006/10/02/golden-hibernate/comment-page-1/#comment-34217</link>
		<dc:creator>Hibernate , rich clients and long running sessions &#171; Blog</dc:creator>
		<pubDate>Fri, 15 Feb 2008 03:45:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/1999/11/30/golden-hibernate/#comment-34217</guid>
		<description>[...] http://blog.xebia.com/2006/10/02/golden-hibernate/ [...]</description>
		<content:encoded><![CDATA[<p>[...] <a href="http://blog.xebia.com/2006/10/02/golden-hibernate/" rel="nofollow">http://blog.xebia.com/2006/10/02/golden-hibernate/</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: eceppda</title>
		<link>http://blog.xebia.com/2006/10/02/golden-hibernate/comment-page-1/#comment-9302</link>
		<dc:creator>eceppda</dc:creator>
		<pubDate>Tue, 12 Jun 2007 19:33:26 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/1999/11/30/golden-hibernate/#comment-9302</guid>
		<description>I take issue with the basic assumption that a giant select grabbing millions of rows is a good idea.
Batch processing is a common paradigm for updating millions of rows in a database, and would alleviate the issue with stale data.
There are a multitude of ways to handle this, even the basic ResultSet was designed with this in mind (caching a set number of rows at a time as opposed to pulling millions of rows into memory).

I agree that the HSQLDB method of using sequences is vague, but an easy solution is not terrible difficult- override the HSQLDialect. getSequenceNextValString() method to return an SQL statement of your choice.</description>
		<content:encoded><![CDATA[<p>I take issue with the basic assumption that a giant select grabbing millions of rows is a good idea.<br />
Batch processing is a common paradigm for updating millions of rows in a database, and would alleviate the issue with stale data.<br />
There are a multitude of ways to handle this, even the basic ResultSet was designed with this in mind (caching a set number of rows at a time as opposed to pulling millions of rows into memory).</p>
<p>I agree that the HSQLDB method of using sequences is vague, but an easy solution is not terrible difficult- override the HSQLDialect. getSequenceNextValString() method to return an SQL statement of your choice.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Amir Pashazadeh</title>
		<link>http://blog.xebia.com/2006/10/02/golden-hibernate/comment-page-1/#comment-6951</link>
		<dc:creator>Amir Pashazadeh</dc:creator>
		<pubDate>Tue, 01 May 2007 20:20:46 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/1999/11/30/golden-hibernate/#comment-6951</guid>
		<description>Why don&#039;t you user StatelessSession in Hibernate?
It just don&#039;t keep references to other objects, so it can not determine whether an object is modified or not. You must explicitly call update methods.</description>
		<content:encoded><![CDATA[<p>Why don&#8217;t you user StatelessSession in Hibernate?<br />
It just don&#8217;t keep references to other objects, so it can not determine whether an object is modified or not. You must explicitly call update methods.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: S12o</title>
		<link>http://blog.xebia.com/2006/10/02/golden-hibernate/comment-page-1/#comment-5318</link>
		<dc:creator>S12o</dc:creator>
		<pubDate>Mon, 12 Mar 2007 11:53:34 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/1999/11/30/golden-hibernate/#comment-5318</guid>
		<description>About  HSQL.

try to use
SELECT TOP1 NEXTVALUE FOR SEQUENCE FROM TABLE
instead of
SELECT NEXTVALUE FOR SEQUENCE FROM TABLE

where TABLE - name of any table in the DB (for example it can be any system table like  INFORMATION_SCHEMA.SYSTEM_COLUMNS) and SEQUENCE - the name of your sequance.

it&#039;s worked</description>
		<content:encoded><![CDATA[<p>About  HSQL.</p>
<p>try to use<br />
SELECT TOP1 NEXTVALUE FOR SEQUENCE FROM TABLE<br />
instead of<br />
SELECT NEXTVALUE FOR SEQUENCE FROM TABLE</p>
<p>where TABLE &#8211; name of any table in the DB (for example it can be any system table like  INFORMATION_SCHEMA.SYSTEM_COLUMNS) and SEQUENCE &#8211; the name of your sequance.</p>
<p>it&#8217;s worked</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robin Bygrave</title>
		<link>http://blog.xebia.com/2006/10/02/golden-hibernate/comment-page-1/#comment-724</link>
		<dc:creator>Robin Bygrave</dc:creator>
		<pubDate>Mon, 13 Nov 2006 08:14:54 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/1999/11/30/golden-hibernate/#comment-724</guid>
		<description>- If you have Oracle10 then you can use getGeneratedKeys rather than selecting the nextval.

- If you are not going to use the Objects for update afterwards you can include the seq.nextval in the insert statement in Oracle9 as well.

I have built a persistence layer called &quot;Ebean&quot; which you can check out at www.avaje.org.  There I also raise the Architectural and API issues of EJB3.

I certainly think Ebean would be a good fit for your problem but I&#039;m a little biased :)

Cheers, Rob.</description>
		<content:encoded><![CDATA[<p>- If you have Oracle10 then you can use getGeneratedKeys rather than selecting the nextval.</p>
<p>- If you are not going to use the Objects for update afterwards you can include the seq.nextval in the insert statement in Oracle9 as well.</p>
<p>I have built a persistence layer called &#8220;Ebean&#8221; which you can check out at <a href="http://www.avaje.org" rel="nofollow">http://www.avaje.org</a>.  There I also raise the Architectural and API issues of EJB3.</p>
<p>I certainly think Ebean would be a good fit for your problem but I&#8217;m a little biased <img src='http://blog.xebia.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Cheers, Rob.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Maarten Winkels</title>
		<link>http://blog.xebia.com/2006/10/02/golden-hibernate/comment-page-1/#comment-410</link>
		<dc:creator>Maarten Winkels</dc:creator>
		<pubDate>Thu, 05 Oct 2006 06:48:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/1999/11/30/golden-hibernate/#comment-410</guid>
		<description>Jan, thanks for your remarks.

I do agree that comparing Ibatis and Hibernate is a bit like comparing apples and oranges. The blog is by no means a comparision. We felt that we had applied our (golden) hammer Hibernate to the wrong problem and expected (or hoped?) that Ibatis would do a better job. In the end we were not even able to decide whether Ibatis would do a better job, because we saw serious issues with the framework itself (not in comparison with Hibernate) with, as stated above, testability and extendability, important features to any framework.

The &quot;TypeHandlerCallback&quot; interface is indeed a means to tweak reading and writing objects from a ResultSet. This is one of the three client-extensions. I think they&#039;re rightly named &quot;client&quot;, since they allow adaption of the outward behaviour of the framework. What I miss though is &quot;enigine&quot;-extensions that allow adapting the behaviour of Ibatis itself, like the possibility to tweak the behaviour and usage of the SelectKeyStatement, as suggested in the blog.

With regard to the read consistency; this is indeed very important in many situations, but not in ours. It would be helpful if we could somehow  toggle this behaviour, but regretfully Oracle does not have this feature and our only option is to read in small chunks.</description>
		<content:encoded><![CDATA[<p>Jan, thanks for your remarks.</p>
<p>I do agree that comparing Ibatis and Hibernate is a bit like comparing apples and oranges. The blog is by no means a comparision. We felt that we had applied our (golden) hammer Hibernate to the wrong problem and expected (or hoped?) that Ibatis would do a better job. In the end we were not even able to decide whether Ibatis would do a better job, because we saw serious issues with the framework itself (not in comparison with Hibernate) with, as stated above, testability and extendability, important features to any framework.</p>
<p>The &#8220;TypeHandlerCallback&#8221; interface is indeed a means to tweak reading and writing objects from a ResultSet. This is one of the three client-extensions. I think they&#8217;re rightly named &#8220;client&#8221;, since they allow adaption of the outward behaviour of the framework. What I miss though is &#8220;enigine&#8221;-extensions that allow adapting the behaviour of Ibatis itself, like the possibility to tweak the behaviour and usage of the SelectKeyStatement, as suggested in the blog.</p>
<p>With regard to the read consistency; this is indeed very important in many situations, but not in ours. It would be helpful if we could somehow  toggle this behaviour, but regretfully Oracle does not have this feature and our only option is to read in small chunks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jan</title>
		<link>http://blog.xebia.com/2006/10/02/golden-hibernate/comment-page-1/#comment-409</link>
		<dc:creator>Jan</dc:creator>
		<pubDate>Thu, 05 Oct 2006 00:26:28 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/1999/11/30/golden-hibernate/#comment-409</guid>
		<description>&quot;The engine does not have any extensions. This looks like a serious drawback. In my experience, ORM solutions are never a 100% fit. There&#039;s always this one table/object mapping that needs a few tweaks to get it to work correctly.&quot;

I do not quite understand. The &quot;TypeHandlerCallback&quot; interface provides you with a means to make just those tweaks - or am I missing something?

On a further note with respect to: 

&quot;Oracle cannot handle this, due to its read consistency functionality. After quite some time a ORA-01555: snapshot too old (rollback segment too small) will inevitably crash the long running transaction.&quot;

This might look like an obstacle to you, but this &quot;read consistency&quot; is functionality you cannot do without in a highly concurrent and highly transactional environment.

I haven&#039;t done any testing from a single iBatis mapping file and multiple, different type databases. Maybe BerkeleyDB behaves &#039;better&#039; with respect to sequences, or maybe there is a way to use one of the ways to get the sequence nextvalue using a Dynamic Mapped Statements.

IMO you can only compare Hibernate to iBatis to a certain degree. iBatis is typically well suited for environments where database/SQL savvy developers want to map their records onto objects (ROM) whereas Hibernate is typically used in top-down scenarios - the classmodel taking precedence over the data model (ORM).</description>
		<content:encoded><![CDATA[<p>&#8220;The engine does not have any extensions. This looks like a serious drawback. In my experience, ORM solutions are never a 100% fit. There&#8217;s always this one table/object mapping that needs a few tweaks to get it to work correctly.&#8221;</p>
<p>I do not quite understand. The &#8220;TypeHandlerCallback&#8221; interface provides you with a means to make just those tweaks &#8211; or am I missing something?</p>
<p>On a further note with respect to: </p>
<p>&#8220;Oracle cannot handle this, due to its read consistency functionality. After quite some time a ORA-01555: snapshot too old (rollback segment too small) will inevitably crash the long running transaction.&#8221;</p>
<p>This might look like an obstacle to you, but this &#8220;read consistency&#8221; is functionality you cannot do without in a highly concurrent and highly transactional environment.</p>
<p>I haven&#8217;t done any testing from a single iBatis mapping file and multiple, different type databases. Maybe BerkeleyDB behaves &#8216;better&#8217; with respect to sequences, or maybe there is a way to use one of the ways to get the sequence nextvalue using a Dynamic Mapped Statements.</p>
<p>IMO you can only compare Hibernate to iBatis to a certain degree. iBatis is typically well suited for environments where database/SQL savvy developers want to map their records onto objects (ROM) whereas Hibernate is typically used in top-down scenarios &#8211; the classmodel taking precedence over the data model (ORM).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Maarten Winkels</title>
		<link>http://blog.xebia.com/2006/10/02/golden-hibernate/comment-page-1/#comment-406</link>
		<dc:creator>Maarten Winkels</dc:creator>
		<pubDate>Tue, 03 Oct 2006 08:25:35 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/1999/11/30/golden-hibernate/#comment-406</guid>
		<description>Good suggestion! We did consider Stateless sessions before, but discarded the idea, because the mapping capabilities are quite limited (no collections). We never realy tried to implement it though. There might be room for another PoC yet...</description>
		<content:encoded><![CDATA[<p>Good suggestion! We did consider Stateless sessions before, but discarded the idea, because the mapping capabilities are quite limited (no collections). We never realy tried to implement it though. There might be room for another PoC yet&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Okke Harsta</title>
		<link>http://blog.xebia.com/2006/10/02/golden-hibernate/comment-page-1/#comment-404</link>
		<dc:creator>Okke Harsta</dc:creator>
		<pubDate>Mon, 02 Oct 2006 21:27:40 +0000</pubDate>
		<guid isPermaLink="false">http://blog.xebia.com/1999/11/30/golden-hibernate/#comment-404</guid>
		<description>Did you consider using the StatelessSession? &#039;http://www.hibernate.org/hib_docs/v3/api/org/hibernate/StatelessSession.html&#039;</description>
		<content:encoded><![CDATA[<p>Did you consider using the StatelessSession? &#8216;http://www.hibernate.org/hib_docs/v3/api/org/hibernate/StatelessSession.html&#8217;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
