<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-1098314322688642582.post623075615325450436..comments</id><updated>2007-11-16T15:30:13.171Z</updated><category term='mobile'/><category term='flash'/><category term='calendar'/><category term='felix'/><category term='mediawiki'/><category term='coding kata'/><category term='tools'/><category term='neural net'/><category term='amf3'/><category term='debt management. collections'/><category term='as3'/><category term='development'/><category term='junit'/><category term='pojo'/><category term='robot'/><category term='annotations'/><category term='gwt'/><category term='adobe'/><category term='solstice'/><category term='rdbms'/><category term='open source'/><category term='api'/><category term='blazeds'/><category term='s2ap'/><category term='equinox'/><category term='chrome'/><category term='objective-c'/><category term='firefox'/><category term='practice'/><category term='team integration'/><category term='fundamentals'/><category term='osgi'/><category term='iphone'/><category term='japanese'/><category term='css'/><category term='ejb'/><category term='corbertura'/><category term='springgraph'/><category term='spring'/><category term='uk'/><category term='sales'/><category term='video'/><category term='roles'/><category term='nosql'/><category term='amf'/><category term='tv'/><category term='jigsaw'/><category term='eclipse'/><category term='uiview'/><category term='work'/><category term='facebook'/><category term='jsr294'/><category term='distributed'/><category term='jls'/><category term='java'/><category term='timemachine'/><category term='osgibb'/><category term='cocomo'/><category term='language'/><category term='dbms'/><category term='move'/><category term='fibonacci'/><category term='joel on software'/><category term='flex'/><category term='user'/><category term='employment'/><category term='bundles'/><category term='advent'/><category term='component'/><category term='rest'/><category term='geometry'/><category term='flex360'/><category term='db4o'/><category term='dataeye'/><category term='io'/><category term='ui'/><category term='android'/><category term='struts'/><category term='software'/><category term='object oriented'/><category term='html'/><category term='mac'/><category term='jaxlondon'/><category term='flint'/><category term='regular expressions'/><category term='arum dataeye'/><category term='ria'/><category term='classcastexception'/><category term='j2ee'/><category term='architecture'/><category term='plugins'/><category term='developer developer developer'/><category term='json'/><category term='svn'/><category term='google'/><category term='bugzilla'/><category term='points'/><category term='podcast'/><category term='installations'/><category term='javascript'/><category term='weak'/><category term='lines'/><category term='charting'/><category term='cineworld'/><category term='apple'/><category term='tablet'/><category term='ebay'/><category term='diablo iii'/><category term='moneytracker'/><category term='ipad'/><category term='jira'/><category term='arum'/><category term='pivot'/><category term='graph'/><category term='conference'/><category term='http'/><category term='gaikokugo'/><category term='forum'/><category term='primer'/><category term='browsers'/><category term='particles'/><category term='3g'/><category term='logservice'/><category term='agile'/><category term='frameworks'/><category term='ios'/><category term='neo4j'/><category term='functional'/><category term='remoting'/><category term='cruisecontrol'/><category term='draw'/><category term='domain'/><category term='windows'/><category term='uml'/><category term='tdd'/><category term='nimble'/><category term='jackson'/><category term='rs'/><category term='london'/><category term='wave'/><category term='vaadin'/><category term='artificial intelligence'/><category term='gfi'/><category term='apache'/><category term='recovery'/><category term='jax'/><category term='hibernate'/><category term='math'/><category term='specification'/><category term='osgijc'/><category term='jna'/><category term='ant'/><category term='charts'/><category term='on the fly'/><category term='dataProvider'/><category term='scottish developers'/><category term='mylyn'/><category term='php'/><category term='internet explorer'/><category term='usb'/><category term='paremus'/><category term='ajax'/><category term='k8055'/><category term='nstouch'/><category term='2010'/><category term='tooling'/><category term='backups'/><category term='website'/><category term='web services'/><category term='jvm'/><category term='rcp'/><category term='taban'/><category term='oodbms'/><category term='open office'/><category term='timecapsule'/><category term='oo'/><category term='twitter'/><category term='modularity'/><category term='emma'/><category term='references'/><category term='academic'/><category term='axis'/><category term='flexbook'/><title type='text'>Comments on The Entropy of Perplexity!: hibernate hell</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.perplentropy.com/feeds/623075615325450436/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098314322688642582/623075615325450436/comments/default'/><link rel='alternate' type='text/html' href='http://www.perplentropy.com/2007/11/hibernate-hell.html'/><author><name>Chris Brind</name><uri>http://www.blogger.com/profile/15060997991535798622</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/-EtnYxYJmpXo/TiSXJ2tDy9I/AAAAAAAAAVA/2RmICUEsyuE/s1600/photo.jpg%253Fsz%253D200'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1098314322688642582.post-5917100164563764438</id><published>2007-11-16T15:30:00.000Z</published><updated>2007-11-16T15:30:00.000Z</updated><title type='text'>Hi Ced,&lt;br&gt;&lt;br&gt;You have the option of both.  DB4O ...</title><content type='html'>Hi Ced,&lt;BR/&gt;&lt;BR/&gt;You have the option of both.  DB4O is an Enterprise level database, you can either run it embedded app agains a file or you can run it standalone and use a client connection.  Beyond opening the file or making the connection the interface is identical.&lt;BR/&gt;&lt;BR/&gt;You need to see their website for information on scaling, etc.  And its works with .NET too (not that you'll be bothered about that I suppose).&lt;BR/&gt;&lt;BR/&gt;You'll love it! =)&lt;BR/&gt;&lt;BR/&gt;Cheers,&lt;BR/&gt;Chris</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098314322688642582/623075615325450436/comments/default/5917100164563764438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098314322688642582/623075615325450436/comments/default/5917100164563764438'/><link rel='alternate' type='text/html' href='http://www.perplentropy.com/2007/11/hibernate-hell.html?showComment=1195227000000#c5917100164563764438' title=''/><author><name>Chris Brind</name><uri>http://www.blogger.com/profile/15060997991535798622</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05862409208926286199'/><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.midsummerdream2008.com/main/images/aboutchris.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.perplentropy.com/2007/11/hibernate-hell.html' ref='tag:blogger.com,1999:blog-1098314322688642582.post-623075615325450436' source='http://www.blogger.com/feeds/1098314322688642582/posts/default/623075615325450436' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1079040556'/></entry><entry><id>tag:blogger.com,1999:blog-1098314322688642582.post-1785309428869220748</id><published>2007-11-16T14:55:00.000Z</published><updated>2007-11-16T14:55:00.000Z</updated><title type='text'>what do you mean about "disciplined"? eh? :-)&lt;br&gt;&lt;...</title><content type='html'>what do you mean about "disciplined"? eh? :-)&lt;BR/&gt;&lt;BR/&gt;In term of database optimum stuff like index, tablespace, etc. I would have a separate SQL script which I would run after the hibernate hbm2ddl.&lt;BR/&gt;&lt;BR/&gt;I'll have a look at db40 if I've got the opportunity to ditch Oracle... so if I've got it correctly, by using DB40, you don't have a separate box? is it all in the app server? what about scalability, load, etc.&lt;BR/&gt;&lt;BR/&gt;&lt;BR/&gt;Ced.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098314322688642582/623075615325450436/comments/default/1785309428869220748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098314322688642582/623075615325450436/comments/default/1785309428869220748'/><link rel='alternate' type='text/html' href='http://www.perplentropy.com/2007/11/hibernate-hell.html?showComment=1195224900000#c1785309428869220748' title=''/><author><name>Ced</name><uri>http://www.blogger.com/profile/15464475377545202793</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.perplentropy.com/2007/11/hibernate-hell.html' ref='tag:blogger.com,1999:blog-1098314322688642582.post-623075615325450436' source='http://www.blogger.com/feeds/1098314322688642582/posts/default/623075615325450436' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1584975199'/></entry><entry><id>tag:blogger.com,1999:blog-1098314322688642582.post-4798885035203765550</id><published>2007-11-16T14:30:00.000Z</published><updated>2007-11-16T14:30:00.000Z</updated><title type='text'>Hi Ced,&lt;br&gt;&lt;br&gt;It sounds like you have a disciplin...</title><content type='html'>Hi Ced,&lt;BR/&gt;&lt;BR/&gt;It sounds like you have a disciplined approach at least, but how do you know your database design is optimal?&lt;BR/&gt;&lt;BR/&gt;What happens if you determine your database design sub-optimal and you need to make an improvement some how.&lt;BR/&gt;&lt;BR/&gt;Also, what about other database specific aspects like indexing and so on.  Is this all done through your modelling?  How do you know that what comes out the other end is valid?&lt;BR/&gt;&lt;BR/&gt;Personally for those reasons alone, I think it's a bad idea to model both the database and application objects in a single place.&lt;BR/&gt;&lt;BR/&gt;The best solution would be not have a database at all, which is what using an ODBMS is like.  It's just persistent storage for your app's object.  Further more your queries are &lt;B&gt;code&lt;/B&gt;, not just strings in code, but actually compilable.  A good ODBMS (e.g. DB4O) will optimize the query, but the important point is that it gets checked by the compiler and not at runtime.  Cool eh?&lt;BR/&gt;&lt;BR/&gt;Seriously, RDBMS and ORM are out of date.  On your next green-field project consider using DB4O instead of an RDBMS (you can still use reporting tools like Bert so don't let that put you off).&lt;BR/&gt;&lt;BR/&gt;Cheers,&lt;BR/&gt;Chris</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098314322688642582/623075615325450436/comments/default/4798885035203765550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098314322688642582/623075615325450436/comments/default/4798885035203765550'/><link rel='alternate' type='text/html' href='http://www.perplentropy.com/2007/11/hibernate-hell.html?showComment=1195223400000#c4798885035203765550' title=''/><author><name>Chris Brind</name><uri>http://www.blogger.com/profile/15060997991535798622</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05862409208926286199'/><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.midsummerdream2008.com/main/images/aboutchris.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.perplentropy.com/2007/11/hibernate-hell.html' ref='tag:blogger.com,1999:blog-1098314322688642582.post-623075615325450436' source='http://www.blogger.com/feeds/1098314322688642582/posts/default/623075615325450436' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1079040556'/></entry><entry><id>tag:blogger.com,1999:blog-1098314322688642582.post-8729821004348269818</id><published>2007-11-16T14:17:00.000Z</published><updated>2007-11-16T14:17:00.000Z</updated><title type='text'>Hi Chris,&lt;br&gt;&lt;br&gt;For my past two projects, we've d...</title><content type='html'>Hi Chris,&lt;BR/&gt;&lt;BR/&gt;For my past two projects, we've done it like this:&lt;BR/&gt; - write the hbm by hands&lt;BR/&gt; - generate the entities with "hbm2java"&lt;BR/&gt; - generate the database with "hbm2ddl"&lt;BR/&gt;&lt;BR/&gt;So you are maintaining only one thing in the database layer: the HBMs.&lt;BR/&gt;&lt;BR/&gt;I've integrated the generation by using maven so every cycle of build, I'm generating the entities (so I don't keep the entities in CVS/subversion).&lt;BR/&gt;&lt;BR/&gt;The only disadvantage of that approach, you can't add behaviour to your entities (due to the generation cycle). To bypass this issue (when I need it), I've used the proxy pattern which encapsulate an entity and provide additional behaviour.&lt;BR/&gt;&lt;BR/&gt;In my past experience the database is tight couple to only one application. Is there any reason why you talk to the inflexibility of the database structure with Hibernate if you are in that kind of scenario?&lt;BR/&gt;&lt;BR/&gt;For me, designing the hibernate entities is the same of doing the database design.&lt;BR/&gt;&lt;BR/&gt;With an MDA approach (my prefer solution), you are modelling the database/entities with UML and behind the scene it uses a combination of its own tools (AndroMDA) and the hibernate tools. You don't get the issue with inflexibility of adding behaviour to your model.&lt;BR/&gt;&lt;BR/&gt;Obviously by using an ORM library, the database layer is a black box. Is not Java application and a separate database. You have to design/maintain the ORM layer instead of maintaining two separate things. Is that not a good thing? :-)&lt;BR/&gt;&lt;BR/&gt;My 2 cents...&lt;BR/&gt;Ced.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098314322688642582/623075615325450436/comments/default/8729821004348269818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098314322688642582/623075615325450436/comments/default/8729821004348269818'/><link rel='alternate' type='text/html' href='http://www.perplentropy.com/2007/11/hibernate-hell.html?showComment=1195222620000#c8729821004348269818' title=''/><author><name>Ced</name><uri>http://www.blogger.com/profile/15464475377545202793</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.perplentropy.com/2007/11/hibernate-hell.html' ref='tag:blogger.com,1999:blog-1098314322688642582.post-623075615325450436' source='http://www.blogger.com/feeds/1098314322688642582/posts/default/623075615325450436' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1584975199'/></entry><entry><id>tag:blogger.com,1999:blog-1098314322688642582.post-8934741703999215893</id><published>2007-11-13T23:27:00.000Z</published><updated>2007-11-13T23:27:00.000Z</updated><title type='text'>Hi German!  &lt;br&gt;&lt;br&gt;Well, yes... I would agree, bu...</title><content type='html'>Hi German!  &lt;BR/&gt;&lt;BR/&gt;Well, yes... I would agree, but &lt;STRONG&gt;apparently&lt;/STRONG&gt; our customers would see it as a barrier as they would expect to be able to use an RDBMS (i.e. so they can run their own queries if they want to).  &lt;STRONG&gt;I&lt;/STRONG&gt; realise that DB4O can be used with reporting tools like Bert, but convincing management is very tricky. :(&lt;BR/&gt;&lt;BR/&gt;But, I'm fully behind ODBMS and especially DB4O and intend to push it whenever I can. =)&lt;BR/&gt;&lt;BR/&gt;Cheers,&lt;BR/&gt;Chris</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098314322688642582/623075615325450436/comments/default/8934741703999215893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098314322688642582/623075615325450436/comments/default/8934741703999215893'/><link rel='alternate' type='text/html' href='http://www.perplentropy.com/2007/11/hibernate-hell.html?showComment=1194996420000#c8934741703999215893' title=''/><author><name>Chris Brind</name><uri>http://www.blogger.com/profile/15060997991535798622</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05862409208926286199'/><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.midsummerdream2008.com/main/images/aboutchris.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.perplentropy.com/2007/11/hibernate-hell.html' ref='tag:blogger.com,1999:blog-1098314322688642582.post-623075615325450436' source='http://www.blogger.com/feeds/1098314322688642582/posts/default/623075615325450436' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1079040556'/></entry><entry><id>tag:blogger.com,1999:blog-1098314322688642582.post-6666097442127628864</id><published>2007-11-13T20:45:00.000Z</published><updated>2007-11-13T20:45:00.000Z</updated><title type='text'>Hi!&lt;br&gt;&lt;br&gt;Your explanation of the problems relate...</title><content type='html'>Hi!&lt;BR/&gt;&lt;BR/&gt;Your explanation of the problems related to ORM (and particularly Hibernate) is excellent!&lt;BR/&gt;However, why replace db4o once everything is nicely set up with a cool ODBMS? =)&lt;BR/&gt;&lt;BR/&gt;Best regards!&lt;BR/&gt;&lt;BR/&gt;German Viscuso&lt;BR/&gt;db4o community manager</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1098314322688642582/623075615325450436/comments/default/6666097442127628864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1098314322688642582/623075615325450436/comments/default/6666097442127628864'/><link rel='alternate' type='text/html' href='http://www.perplentropy.com/2007/11/hibernate-hell.html?showComment=1194986700000#c6666097442127628864' title=''/><author><name>German Viscuso</name><uri>http://www.blogger.com/profile/05542920325440015442</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://developer.db4o.com/users/avatar.aspx?userid=2770'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.perplentropy.com/2007/11/hibernate-hell.html' ref='tag:blogger.com,1999:blog-1098314322688642582.post-623075615325450436' source='http://www.blogger.com/feeds/1098314322688642582/posts/default/623075615325450436' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-965306024'/></entry></feed>
