JPA2 Done Right
Easy JPA2 JPA2.0 + Hibernate3.6 + HSQLDB2.0 + Maven3
Easy JPA2 JPA2.0 + Hibernate3.6 + HSQLDB2.0 + Maven3 Create project mvn archetype:generate …
Easy JPA2 JPA2.0 + Hibernate3.6 + HSQLDB2.0 + Maven3 Create project mvn archetype:generate … Edit pom.xml Add repository  jboss Add dependency hibernate-core hibernate-entitymanager hsqldb
Easy JPA2 JPA2.0 + Hibernate3.6 + HSQLDB2.0 + Maven3 Ready to import into IDE  
Easy JPA2 persistence.xml <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <persistence xmlns=&quot;http://java.sun.com/xml/ns/persistence&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/persistence  http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd&quot; version=&quot;2.0&quot;> <persistence-unit name=&quot;org.hibernate.jpa&quot;> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>lv.jug.jpa.CustomerEntity</class> <properties> <property name=&quot;hibernate.connection.url&quot;  value=&quot;jdbc:hsqldb:./.db/testfiles&quot;/> <property name=&quot;hibernate.connection.driver_class&quot; value=&quot;org.hsqldb.jdbc.JDBCDriver&quot;/> <property name=&quot;hibernate.connection.username&quot; value=&quot;SA&quot;/> <property name=&quot;hibernate.connection.password&quot; value=&quot;&quot;/> <property name=&quot;hibernate.archive.autodetection&quot; value=&quot;class&quot;/> <property name=&quot;hibernate.show_sql&quot; value=&quot;true&quot;/> <property name=&quot;hibernate.format_sql&quot; value=&quot;true&quot;/> <property name=&quot;hbm2ddl.auto&quot; value=&quot;update&quot;/> </properties> </persistence-unit> </persistence>
Easy JPA2 persistence.xml <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <persistence xmlns=&quot;http://java.sun.com/xml/ns/persistence&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/persistence  http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd&quot; version=&quot;2.0&quot;> <persistence-unit name=&quot;org.hibernate.jpa&quot;> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>lv.jug.jpa.CustomerEntity</class> <properties> <property name=&quot;hibernate.connection.url&quot;  value=&quot;jdbc:hsqldb:./.db/testfiles&quot;/> <property name=&quot;hibernate.connection.driver_class&quot; value=&quot;org.hsqldb.jdbc.JDBCDriver&quot;/> <property name=&quot;hibernate.connection.username&quot; value=&quot;SA&quot;/> <property name=&quot;hibernate.connection.password&quot; value=&quot;&quot;/> <property name=&quot;hibernate.archive.autodetection&quot; value=&quot;class&quot;/> <property name=&quot;hibernate.show_sql&quot; value=&quot;true&quot;/> <property name=&quot;hibernate.format_sql&quot; value=&quot;true&quot;/> <property name=&quot;hbm2ddl.auto&quot; value=&quot;update&quot;/> </properties> </persistence-unit> </persistence>
Easy JPA2 CustomerEntity
Easy JPA2 И вс e
Easy JPA2 ? И все же не все ?
Easy JPA2? Попробуем что нас получилось...
Easy JPA2 Идея:  Для каждого  Entity  надо  DAO   
Easy JPA2  ? Идея:  Для каждого  Entity  надо  DAO
Not Easy JPA2 ? Не хватит и 2-х экранов   
Not Easy JPA2 ? Опять много кода  
Done Right JPA2.0 + Hiernate3.6 + HSQLDB2.0 + Maven3 +  Hades   http://redmine.synyx.org/projects/hades
Done Right JPA2.0 + Hiernate3.6 + HSQLDB2.0 + Maven3 +  Hades   http://redmine.synyx.org/projects/hades Edit pom.xml Add dependency org.synyx.hades
Done Right Создадим новое  “hades-style” DAO
Easy JPA2 И вс e  
Easy JPA2 И вс e   не нужно больше плодить «одинаковый код» Все  DAO  стало декларативным
Easy JPA2 Hades  http://hades.synys.org Apache license 2.0

LatJUG. JPA2 Done Right

  • 1.
  • 2.
    Easy JPA2 JPA2.0+ Hibernate3.6 + HSQLDB2.0 + Maven3
  • 3.
    Easy JPA2 JPA2.0+ Hibernate3.6 + HSQLDB2.0 + Maven3 Create project mvn archetype:generate …
  • 4.
    Easy JPA2 JPA2.0+ Hibernate3.6 + HSQLDB2.0 + Maven3 Create project mvn archetype:generate … Edit pom.xml Add repository jboss Add dependency hibernate-core hibernate-entitymanager hsqldb
  • 5.
    Easy JPA2 JPA2.0+ Hibernate3.6 + HSQLDB2.0 + Maven3 Ready to import into IDE 
  • 6.
    Easy JPA2 persistence.xml<?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <persistence xmlns=&quot;http://java.sun.com/xml/ns/persistence&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd&quot; version=&quot;2.0&quot;> <persistence-unit name=&quot;org.hibernate.jpa&quot;> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>lv.jug.jpa.CustomerEntity</class> <properties> <property name=&quot;hibernate.connection.url&quot; value=&quot;jdbc:hsqldb:./.db/testfiles&quot;/> <property name=&quot;hibernate.connection.driver_class&quot; value=&quot;org.hsqldb.jdbc.JDBCDriver&quot;/> <property name=&quot;hibernate.connection.username&quot; value=&quot;SA&quot;/> <property name=&quot;hibernate.connection.password&quot; value=&quot;&quot;/> <property name=&quot;hibernate.archive.autodetection&quot; value=&quot;class&quot;/> <property name=&quot;hibernate.show_sql&quot; value=&quot;true&quot;/> <property name=&quot;hibernate.format_sql&quot; value=&quot;true&quot;/> <property name=&quot;hbm2ddl.auto&quot; value=&quot;update&quot;/> </properties> </persistence-unit> </persistence>
  • 7.
    Easy JPA2 persistence.xml<?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <persistence xmlns=&quot;http://java.sun.com/xml/ns/persistence&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd&quot; version=&quot;2.0&quot;> <persistence-unit name=&quot;org.hibernate.jpa&quot;> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>lv.jug.jpa.CustomerEntity</class> <properties> <property name=&quot;hibernate.connection.url&quot; value=&quot;jdbc:hsqldb:./.db/testfiles&quot;/> <property name=&quot;hibernate.connection.driver_class&quot; value=&quot;org.hsqldb.jdbc.JDBCDriver&quot;/> <property name=&quot;hibernate.connection.username&quot; value=&quot;SA&quot;/> <property name=&quot;hibernate.connection.password&quot; value=&quot;&quot;/> <property name=&quot;hibernate.archive.autodetection&quot; value=&quot;class&quot;/> <property name=&quot;hibernate.show_sql&quot; value=&quot;true&quot;/> <property name=&quot;hibernate.format_sql&quot; value=&quot;true&quot;/> <property name=&quot;hbm2ddl.auto&quot; value=&quot;update&quot;/> </properties> </persistence-unit> </persistence>
  • 8.
  • 9.
  • 10.
    Easy JPA2 ?И все же не все ?
  • 11.
    Easy JPA2? Попробуемчто нас получилось...
  • 12.
    Easy JPA2 Идея: Для каждого Entity надо DAO 
  • 13.
    Easy JPA2 ? Идея: Для каждого Entity надо DAO
  • 14.
    Not Easy JPA2? Не хватит и 2-х экранов 
  • 15.
    Not Easy JPA2? Опять много кода 
  • 16.
    Done Right JPA2.0+ Hiernate3.6 + HSQLDB2.0 + Maven3 + Hades http://redmine.synyx.org/projects/hades
  • 17.
    Done Right JPA2.0+ Hiernate3.6 + HSQLDB2.0 + Maven3 + Hades http://redmine.synyx.org/projects/hades Edit pom.xml Add dependency org.synyx.hades
  • 18.
    Done Right Создадимновое “hades-style” DAO
  • 19.
    Easy JPA2 Ивс e 
  • 20.
    Easy JPA2 Ивс e  не нужно больше плодить «одинаковый код» Все DAO стало декларативным
  • 21.
    Easy JPA2 Hades http://hades.synys.org Apache license 2.0