街头诗人的博客

J2EE,大数据,人工智能,数据库,Android相关技术分享

JSR-338 学习笔记(JPA)
  1. Entities类可以用两种方式的注解来标识,Fields和Properties,区别在于如果用Fields来注解,在运行时会直接对成员变量进行访问(除了那些用Transient注解的属性,或是用transient声明的变量,transient声明的变量即告诉运行时,该变量不属于序列化的一部分,亦不属于持久化的一部分)

  2. 可以用四种类型来表示集合,Collection, Set, List, Map,@ElementCollection注解可以用来表示集合,它有两个属性,targetClass表示自定义类或者内嵌类,fetch表示获取的方式EAGER还是LAZY

  3. Validate(Bean Validation),JPA会在PrePersist,PreUpdate,PreRemove这几个生命周期事件中进行约束检查

  4. 自定义的Validator可以和默认提供的一起使用,对于Validator的注解应该和Entities的注解方式相同,即如果使用Fields模式注解的类,约束也应该加在fields上,否则应该写在properties上。

  5. 系统自带的约束参照Bean Validation章节,code层在javax.validation.constraints包下面

  6. Bidirectional和Unidirectional的区别:两个实体都存在对对方的引用,这就是bi-directional,否则就是unidirectional

  7. Cascade operation(关联操作,我自己翻译的),指的是,父Entity的变化会对引用的子Entity产生何种影响,比如父Entity被删除了,它引用的子Entity是否要一起删除,适用于@OneToOne, @OneToMany

  8. Orphan Removal(孤立删除),指的是如果一个实体被解除被引用的关系时,是否要进行删除,适用于@OneToOne, @OneToMany,默认false,比如一个客户对10个订单有引用,如果删掉1个订单,那么这个订单就是孤立的实体,可以利用孤立删除机制进行删除

  9. 管理Entities的两种方式,Container-Managed Entity Managers, Application-Managed Entity Managers,前者通过@PersistenceContext注解进行注入一个EntityManager

  10. Entity的状态,new, managed, detached, removed

  11. 强制同步,可以调用EntityManger.flush()方法进行强制同步,如果设定了关联操作,也会进行关联操作

  12. 持久单元(Persistence Units),在persistence.xml可以配置多个单元在代码中注入使用

  13. 打包,persistent units可以和war或者ejb放到一起打包,也可以单独打成jar包然后放入war或者ear中

  14. 如果放到ejb中一起打包,则persistence.xml要放到ejb/META-INF/下面

  15. 如果放到war中一起打包,则persistence.xml要放到WEB-INF/classes/META-INF/下面

  16. 如果单独打成jar包,要放到war的WEB-INF/lib下面

  17. 如果单独打成jar包,要放到ear的lib文件夹下面

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sp_studio/article/details/51536857
文章标签: JPA javaEE
个人分类: JavaEE相关博客
想对作者说点什么? 我来说一句

[JSR 338]Java Persistence API Version 2.1

2014年11月14日 4.26MB 下载

没有更多推荐了,返回首页

不良信息举报

JSR-338 学习笔记(JPA)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭