<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Angel "Java" Lopez : Hibernate</title><link>http://msmvps.com/blogs/lopez/archive/tags/Hibernate/default.aspx</link><description>Tags: Hibernate</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Desarrollo Agil con Java, Spring, Hibernate y Eclipse</title><link>http://msmvps.com/blogs/lopez/archive/2008/12/13/desarrollo-agiel-con-java-spring-hibernate-y-eclipse.aspx</link><pubDate>Sat, 13 Dec 2008 12:14:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1656684</guid><dc:creator>lopez</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1656684</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2008/12/13/desarrollo-agiel-con-java-spring-hibernate-y-eclipse.aspx#comments</comments><description>&lt;p&gt;&lt;img align="left" src="http://www.ajlopez.com/images/articles/agilejava.jpg" style="margin:0px 20px 20px 0px;" alt="" /&gt;Estoy leyendo el libro &lt;a target="_blank" href="http://safari.oreilly.com/0672328968"&gt;Agile Java Development with Spring, Hibernate and Eclipse&lt;/a&gt;, escrito por Anil Hemrajani. Acerca del autor:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Anil Hemrajani ha estado trabajando con Java desde finales de 1995, como desarrollador, emprendedor, autor e instructor. Es el fundador de Isavix Corporation, un exitosa compa&amp;ntilde;&amp;iacute;a de servicios&amp;nbsp;IT&amp;nbsp;(ahora Inscope Solutions), u de isavix.net (ahora DeveloperHub.com), una comunidad de desarrollo, que ha crecido a m&amp;aacute;s de 100.000 miembros registrados. Tiene 20 de a&amp;ntilde;os de experiencia en la comunidad de IT, habiendo trabajdo para varios de las compa&amp;ntilde;&amp;iacute;as Fourtune 100 y tambi&amp;eacute;n en organizaciones m&amp;aacute;s peque&amp;ntilde;as. Ha publicado numerosos art&amp;iacute;culos en revistas bien conocidads, presentado en conferencias y seminarios alrededor del mundo, y ha recibido el premio&amp;nbsp;&amp;quot;Outstanding Contribution to the Growth of the Java Community&amp;quot; de Sun Microsystems, el premio &amp;quot;Best Java Client&amp;quot; en&amp;nbsp; JavaOne por BackOnline,&amp;nbsp;un producto de backup cliente/servidor basado en Java, y fue nominado para el premio Computerworld-Smithsonian por un sitio web que brinda un servicio online gratuito de almacenamiento de archivos. Su m&amp;aacute;s reciente proyecto es el sitio &lt;a href="http://visualpatterns.com"&gt;visualpatterns.com&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Es un muy buen libro, que cubre los temas de logging, depuraci&amp;oacute;n remota, pr&amp;aacute;cticas &amp;aacute;gilas, JMX, JUnit, Ant, programaci&amp;oacute;n con POJOs (Plain Old Java Objects), librer&amp;iacute;as de tags de JSP, y m&amp;aacute;s. Pero ahora, estoy interesado en comentar algunos p&amp;aacute;rrafos del prefacio. Hemrajani escribe:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I began working with Java technology in late 1995, shortly before the Java Development Kit (JDK) 1.0 was formally released. Prior to that, I was programming in C and C++ for many years. I was truly excited about the features that Java offered, such as cross-platform portability, simpler syntax (simpler than C++, for example), objectoriented, secure, rich API, and more.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Traduzco libremente: &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Comenc&amp;eacute; a trabajar con la tecnolog&amp;iacute;a Java a finales de 1995, poco antes de que el Java Development Kit (JDK) fuera formalmente liberado. Antes de eso, yo estuve programando en C y C++ por muchos a&amp;ntilde;os. Yo esta realmente excitado acerca de las nuevas caracter&amp;iacute;sticas que ofrec&amp;iacute;a Java, como portabilidada cross-platform, sintaxis simple (m&amp;aacute;s simple que C++, por ejemplo), orientado a objetos, seguridad, rica API, y m&amp;aacute;s.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Yo tuve una carrera similar, pero por estos pagos. En alg&amp;uacute;n momento de 1995, aprend&amp;iacute;a el lenguaje Java y parte de la librer&amp;iacute;a, pasando a ser un fan del lenguaje. Era una liberaci&amp;oacute;n de programaci&amp;oacute;n con C++ (plagada de problemas de bien manejo de los new y los delete), y de Visual Basic (donde no hab&amp;iacute;a herencia, ni objetos completos). Pero debo admitir que la interfaz GUI estaba a&amp;uacute;n basada en una fea implementaci&amp;oacute;n AWT. &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Over my 20-year career, I have learned a few things. Among these, my favorite is simplicity; anytime I see complexity, I begin doubting whether the solution is correct. This is how I had begun to feel about Java right around 2000, when the Java 2 Enterprise Edition (J2EE) started becoming mainstream. Note that from this point on, I will refer to J2EE as JEE because the &amp;quot;2&amp;quot; was recently dropped from the name by Sun Microsystems.&lt;/p&gt;
&lt;p&gt;En mis 20 a&amp;ntilde;os de carrera, he aprendido unas pocas cosas. Entre ellas, mi favorita es la simplicidad: cada vez que veo complejidad, comienzo a dudar de si la soluci&amp;oacute;n que estoy viendo es correcta. Es as&amp;iacute; c&amp;oacute;mo me sent&amp;iacute;a alrededor de Java cerce de 2000, cuando el Java 2 Enterprise Edition (J2EEE) comnezaba a ser conocido. Noto que en desde ahora, me referir&amp;eacute; a J2EE como JEE porque el &amp;quot;2&amp;quot; ha sido recientemente removido del nombre por Sun Microsystems.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Coincido. Cuando Sun lanz&amp;oacute; J2EE, era todo un revoltijo. Por a&amp;ntilde;os, pens&amp;eacute; que ellos, los de Sun, estaban en lo correcto, y que yo no entend&amp;iacute;a las razones para la complejidad subyacente en los Enterprise Java Beans. Hasta que le&amp;iacute; los libros de Rod Johnson sobre desarrollo empresarial con Java: ah&amp;iacute; confirm&amp;eacute; lo extra&amp;ntilde;o y complejo que es EJB. &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;My growing lack of interest in Java was a result of what I saw as unnecessary complexity in JEE introduced by layers of abstraction. I began to believe that Sun Microsystems (inventor of Java) was focusing Java and JEE on solving the most complex enterprise applications, but somewhat ignoring the relatively less complex, small- to medium-sized applications. Furthermore, I saw the hype take over people&amp;#39;s common sense because I ran across projects in which Enterprise JavaBeans (EJB) were used for nondistributed processing, such as local logging. I felt strongly enough about this subject to write a short article for JavaWorld.com in 2000 (&lt;a href="http://www.javaworld.com/javaworld/jw-10-2000/jw-1006-soapbox.html"&gt;http://www.javaworld.com/javaworld/jw-10-2000/jw-1006-soapbox.html&lt;/a&gt;) titled, &amp;quot;Do You Really Need Enterprise JavaBeans?&amp;quot; (About five years later, we saw EJB 3.0 specifications being rewritten to become more simplified, to ease the development.) This brings us to this book and the reason I wrote it.&lt;/p&gt;
&lt;p&gt;Mi crecience falta de inter&amp;eacute;s en Java era un resultado de lo que yo ve&amp;iacute;a como complejidad innecesaria en JEE, complejidad introducida por capas de abstracci&amp;oacute;n. Comenzaba a creer que Sun Microsystems (los inventores de Java) estaba enfocando a Java y JEE para resolver aplicaciones complejas empresariales, pero ignorando las relativamente menos complejas aplicaciones peque&amp;ntilde;as y medianas. Es m&amp;aacute;s, yo ve&amp;iacute;a que todo esa excesiva publicidad sobre el tema, estaba haciendo olvidar el sentido com&amp;uacute;n, porque veia proyectos donde Enterprise JavaBeans (EJBs) estaban siendo usados para procesamiento no distribuido, como el logging local. Me sent&amp;iacute;a seguro en el tema, como para escribir un corto art&amp;iacute;culo en JavaWorld.com en el 2000 (&lt;a href="http://www.javaworld.com/javaworld/jw-10-2000/jw-1006-soapbox.html"&gt;http://www.javaworld.com/javaworld/jw-10-2000/jw-1006-soapbox.html&lt;/a&gt;) titulado, &amp;quot;&amp;iquest;Realmente necesita Enterprise JavaBeans?&amp;quot; (cinco a&amp;ntilde;os m&amp;aacute;s tarde, vemos que la especificaci&amp;oacute;n EJB 3.0 ha sido reescrita para ser m&amp;aacute;s simple, para facilitar el desarrollo). Todo esto nos trae a este libro y las razones para haberlo escrito.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Los EJBs son el trabajo del diablo. La programaci&amp;oacute;n con POJO, ORMs (Object Relational Mappers) como Hubernate, y el uso del framework Spring, son ejemplos de buen dise&amp;ntilde;o creados por la comunidad de Java. Finalmente, la gente de Sun vi&amp;oacute; la luz, y adoptaron muchas ideas de la comunidad en su nueva especificaci&amp;oacute;n EJB 3.0, pero para m&amp;iacute;, eso fue un ejemplo de &amp;quot;demasiado poco, demasiado tarde&amp;quot;. La programaci&amp;oacute;n con EJB fue siempre una pesadilla, que merece ser borrada de la memoria de la humanidad entera. &lt;/p&gt;
&lt;p&gt;Al comienzo de cada cap&amp;iacute;tulo en este libro, hay una ilustraci&amp;oacute;n, describiendo una historia ficticia, que recorre el libro, describiendo c&amp;oacute;mo se lleva a cabo el desarrollo de una aplicaci&amp;oacute;n. No puedo resistir incluir una, del cap&amp;iacute;tulo 2 (hay m&amp;aacute;s en &lt;a href="http://visualpatterns.com"&gt;visualpatterns.com&lt;/a&gt;): &lt;/p&gt;
&lt;p align="center"&gt;&lt;img src="http://www.todocontenidos.com/images/articles/agilejava2.png" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;M&amp;aacute;s informaci&amp;oacute;n sobre este libro, en &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.visualpatterns.com/agilejava.php" title="http://www.visualpatterns.com/agilejava.php"&gt;http://www.visualpatterns.com/agilejava.php&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Esa p&amp;aacute;gina tiene la tabla de contenido, y&amp;nbsp;comentarios de Scott W. Ambler, y Rod Johnson. &lt;/p&gt;
&lt;p&gt;Otro libro que recomiendo, alineado con estas ideas: &lt;/p&gt;
&lt;p&gt;&lt;a href="http://oreilly.com/catalog/9780596006761/" title="Better, Faster, Lighter Java O&amp;#39;Reilly Media"&gt;Better, Faster, Lighter Java O&amp;#39;Reilly Media&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;tambi&amp;eacute;n orientado a usar Hibernate, y Spring, pero explicando en cada cap&amp;iacute;tulo las razones para adoptar tal o cual dise&amp;ntilde;o. &lt;/p&gt;
&lt;p&gt;Este post apareci&amp;oacute; originalmente en &amp;quot;Anglish&amp;quot; en &lt;/p&gt;
&lt;p&gt;&lt;a href="http://ajlopez.wordpress.com/2008/11/25/agile-java-development-with-spring-hibernate-and-eclipse/" title="Agile Java Development with Spring, Hibernate and Eclipse"&gt;Agile Java Development with Spring, Hibernate and Eclipse&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Nos leemos! &lt;/p&gt;
&lt;p&gt;Angel &amp;quot;Java&amp;quot; Lopez&lt;br /&gt;&lt;a href="http://www.ajlopez.com"&gt;http://www.ajlopez.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1656684" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Java/default.aspx">Java</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Hibernate/default.aspx">Hibernate</category></item><item><title>Recursos sobre Hibernate</title><link>http://msmvps.com/blogs/lopez/archive/2007/07/20/recursos-sobre-hibernate.aspx</link><pubDate>Fri, 20 Jul 2007 10:42:52 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1042701</guid><dc:creator>lopez</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1042701</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2007/07/20/recursos-sobre-hibernate.aspx#comments</comments><description>&lt;p&gt;En varios de los ejemplos que vemos en mis cursos de Java, terminamos usando &lt;a href="http://www.hibernate.org" target="_blank"&gt;Hibernate&lt;/a&gt;, la librería de ORM (Object Relational Mapping) para Java. Es realmente muy útil para armar un modelo de dominio con relaciones entre objetos, y manejar su persistencia de una forma bastante transparente. Ya escribiré sobre generar código desde &lt;a href="http://www.ajlopez.com/ajgenesis" target="_blank"&gt;AjGenesis&lt;/a&gt; para Hibernate (así como para &lt;a href="http://www.nhibernate.org" target="_blank"&gt;NHibernate&lt;/a&gt;, algo adelanté en &lt;a href="http://msmvps.com/blogs/lopez/archive/2007/06/25/generando-aplicaciones-con-ajgenesis.aspx" target="_blank"&gt;Generando aplicaciones con AjGenesis&lt;/a&gt;).&lt;/p&gt; &lt;p&gt;Mientras, hay varias páginas con recursos, tutoriales y ejemplos de uso de Hibernate. Una de las más abarcativas es:&lt;/p&gt; &lt;p&gt;&lt;a href="http://tssblog.techtarget.com/index.php/interoperability/mini-guide-hibernate-and-nhibernate" target="_blank"&gt;Mini-guide: Hibernate and NHibernate&lt;/a&gt;&lt;/p&gt; &lt;p&gt;aunque por ahora es en su mayoría sólo sobre Hibernate.&lt;/p&gt; &lt;p&gt;Algunos enlaces más:&lt;/p&gt; &lt;p&gt;&lt;a href="http://hibernate.javabeat.net/resources/index.php?examType=HIBERNATE&amp;amp;source=MSG&amp;amp;msgId=228"&gt;Hibernate vs. Spring&lt;/a&gt;&lt;br /&gt;&lt;a href="http://hibernate.javabeat.net/resources/index.php?examType=HIBERNATE&amp;amp;source=MSG&amp;amp;msgId=29"&gt;Developing J2EE Applications Using Hibernate Annotations and Spring MVC&lt;/a&gt;&lt;br /&gt;&lt;a href="http://hibernate.javabeat.net/resources/index.php?examType=HIBERNATE&amp;amp;source=MSG&amp;amp;msgId=28"&gt;Object Generation: A Better Approach to Hibernate Integration&lt;/a&gt;&lt;br /&gt;&lt;a href="http://hibernate.javabeat.net/resources/index.php?examType=HIBERNATE&amp;amp;source=MSG&amp;amp;msgId=27"&gt;Using Spring with JDO and Hibernate&lt;/a&gt;&lt;br /&gt;&lt;a href="http://hibernate.javabeat.net/resources/index.php?examType=HIBERNATE&amp;amp;source=MSG&amp;amp;msgId=26"&gt;Bridge the gap between Struts and Hibernate&lt;/a&gt; &lt;p&gt;&lt;a href="http://hibernate.javabeat.net/tutorials/"&gt;Complete Hibernate 3.0 Tutorial&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.java2s.com/Code/Java/Hibernate/CatalogHibernate.htm"&gt;Hibernate Examples&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.theserverside.com/tt/blogs/showblog.tss?id=Hibernate3_JDBC"&gt;Using Hibernate as a JDBC&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Más enlaces en&lt;/p&gt; &lt;p&gt;&lt;a title="http://del.icio.us/ajlopez/hibernate" href="http://del.icio.us/ajlopez/hibernate"&gt;http://del.icio.us/ajlopez/hibernate&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="http://del.icio.us/ajlopez/orm" href="http://del.icio.us/ajlopez/orm"&gt;http://del.icio.us/ajlopez/orm&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="http://del.icio.us/ajlopez/nhibernate" href="http://del.icio.us/ajlopez/nhibernate"&gt;http://del.icio.us/ajlopez/nhibernate&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Nos leemos!&lt;/p&gt; &lt;p&gt;Angel &amp;quot;Java&amp;quot; Lopez&lt;br /&gt;&lt;a href="http://www.ajlopez.com/"&gt;http://www.ajlopez.com/&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1042701" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Java/default.aspx">Java</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/NHibernate/default.aspx">NHibernate</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Hibernate/default.aspx">Hibernate</category></item></channel></rss>