Upload
denis-udod
View
513
Download
3
Embed Size (px)
DESCRIPTION
Java User Group Latvia February 2011 JPA2 Done Right Denis Udod http://goo.gl/rzD0q
Citation preview
JPA2 Done Right
Easy JPA2JPA2.0 + Hibernate3.6 + HSQLDB2.0 + Maven3
Easy JPA2JPA2.0 + Hibernate3.6 + HSQLDB2.0 + Maven3
Create projectmvn archetype:generate …
Easy JPA2JPA2.0 + Hibernate3.6 + HSQLDB2.0 + Maven3
Create projectmvn archetype:generate …
Edit pom.xmlAdd repository jboss
Add dependency
hibernate-core
hibernate-entitymanager
hsqldb
Easy JPA2JPA2.0 + Hibernate3.6 + HSQLDB2.0 + Maven3
Ready to import into IDE
Easy JPA2persistence.xml
<?xml version="1.0" encoding="UTF-8"?><persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0">
<persistence-unit name="org.hibernate.jpa"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>lv.jug.jpa.CustomerEntity</class> <properties> <property name="hibernate.connection.url" value="jdbc:hsqldb:./.db/testfiles"/> <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbc.JDBCDriver"/> <property name="hibernate.connection.username" value="SA"/> <property name="hibernate.connection.password" value=""/> <property name="hibernate.archive.autodetection" value="class"/> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> <property name="hbm2ddl.auto" value="update"/> </properties> </persistence-unit></persistence>
Easy JPA2persistence.xml
<?xml version="1.0" encoding="UTF-8"?><persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0">
<persistence-unit name="org.hibernate.jpa"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>lv.jug.jpa.CustomerEntity</class> <properties> <property name="hibernate.connection.url" value="jdbc:hsqldb:./.db/testfiles"/> <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbc.JDBCDriver"/> <property name="hibernate.connection.username" value="SA"/> <property name="hibernate.connection.password" value=""/> <property name="hibernate.archive.autodetection" value="class"/> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> <property name="hbm2ddl.auto" value="update"/> </properties> </persistence-unit></persistence>
Easy JPA2CustomerEntity
Easy JPA2И всe
Easy JPA2 ?И все же не все ?
Easy JPA2?Попробуем что нас получилось...
Easy JPA2Идея: Для каждого Entity надо DAO
Easy JPA2 ?Идея: Для каждого Entity надо DAO
Not Easy JPA2 ?Не хватит и 2-х экранов
Not Easy JPA2 ?Опять много кода
Done RightJPA2.0 + Hiernate3.6 + HSQLDB2.0 + Maven3
+ Hades http://redmine.synyx.org/projects/hades
Done RightJPA2.0 + Hiernate3.6 + HSQLDB2.0 + Maven3
+ Hades http://redmine.synyx.org/projects/hades
Edit pom.xmlAdd dependency
org.synyx.hades
Done RightСоздадим новое “hades-style” DAO
Easy JPA2И всe
Easy JPA2И всe
не нужно больше плодить «одинаковый код»Все DAO стало декларативным
Easy JPA2Hades http://hades.synys.orgApache license 2.0