1.類庫:
apache的commons除外
<classpathentry kind="lib" path="test/lib/hibernate3.jar"/>
<classpathentry kind="lib" path="test/lib/hibernate-entitymanager.jar"/>
<classpathentry kind="lib" path="test/lib/jboss-archive-browsing.jar"/>
<classpathentry kind="lib" path="test/lib/dom4j-1.6.1.jar"/>
<classpathentry kind="lib" path="test/lib/hibernate-annotations.jar"/>
<classpathentry kind="lib" path="test/lib/hibernate-commons-annotations.jar"/>
<classpathentry kind="lib" path="test/lib/javassist.jar"/>
<classpathentry kind="lib" path="test/lib/cglib-2.1.3.jar"/>
<classpathentry kind="lib" path="test/lib/asm.jar"/>
<classpathentry kind="lib" path="test/lib/asm-attrs.jar"/>
<classpathentry kind="lib" path="test/lib/antlr-2.7.6.jar"/>
2.persistence.xml
<persistence-unit name="rmp" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.dialect"
value="org.hibernate.dialect.Oracle9iDialect" />
<property name="hibernate.connection.driver_class"
value="oracle.jdbc.OracleDriver" />
<property name="hibernate.connection.url"
value="jdbc:oracle:thin:@172.16.3.3:1521:ngrm" />
<property name="hibernate.connection.username" value="xxx" />
<property name="hibernate.connection.password"
value="xxx123" />
</properties>
</persistence-unit>
3.問題
1.重復屬性映射問題,特別煩
@MapSuperClass
public class A {
@Transistence
public String getA11()
}
}
@Entity
@Table(name="...")
public class AA extends A {
@Transistce
@Override
public String getA11() {
}
}
要定義兩次@Transistce
2.new 構造器問題
select distinct new com.xxx.A(a.id, a.ss) from AA a where a.ddd=?1 and ..
為啥一定要采用通用構造器來裝載數據?這樣最致命的問題是如果一天要改SQL,則要改構造函數,并且如果選出來的字段比較多,構造函數就沒法看懂了
完全可以通過缺省構造器實例化,通過其它方式來設值.
其實這一點就是openJPA也沒有解決好,主要是不支持別名造成的
3.uuid-hex主鍵生成器,為啥要用
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid.hex"),該處要引入一個Hibernate的類,以后就只能在職Hibernate的JPA上跑了,受限
而OpenJPA只用 @GeneratedValue(generator = "uuid-hex")要簡單一些
4.優點
1. 驗證器部分,但標記也實在太多了,我現在有點討厭它