JSR-338 学习笔记(JPA)
来源:互联网 发布:mac上顿号怎么打 编辑:程序博客网 时间:2024/05/16 17:25
Entities类可以用两种方式的注解来标识,Fields和Properties,区别在于如果用Fields来注解,在运行时会直接对成员变量进行访问(除了那些用Transient注解的属性,或是用transient声明的变量,transient声明的变量即告诉运行时,该变量不属于序列化的一部分,亦不属于持久化的一部分)
可以用四种类型来表示集合,Collection, Set, List, Map,@ElementCollection注解可以用来表示集合,它有两个属性,targetClass表示自定义类或者内嵌类,fetch表示获取的方式EAGER还是LAZY
Validate(Bean Validation),JPA会在PrePersist,PreUpdate,PreRemove这几个生命周期事件中进行约束检查
自定义的Validator可以和默认提供的一起使用,对于Validator的注解应该和Entities的注解方式相同,即如果使用Fields模式注解的类,约束也应该加在fields上,否则应该写在properties上。
系统自带的约束参照Bean Validation章节,code层在javax.validation.constraints包下面
Bidirectional和Unidirectional的区别:两个实体都存在对对方的引用,这就是bi-directional,否则就是unidirectional
Cascade operation(关联操作,我自己翻译的),指的是,父Entity的变化会对引用的子Entity产生何种影响,比如父Entity被删除了,它引用的子Entity是否要一起删除,适用于@OneToOne, @OneToMany
Orphan Removal(孤立删除),指的是如果一个实体被解除被引用的关系时,是否要进行删除,适用于@OneToOne, @OneToMany,默认false,比如一个客户对10个订单有引用,如果删掉1个订单,那么这个订单就是孤立的实体,可以利用孤立删除机制进行删除
管理Entities的两种方式,Container-Managed Entity Managers, Application-Managed Entity Managers,前者通过@PersistenceContext注解进行注入一个EntityManager
Entity的状态,new, managed, detached, removed
强制同步,可以调用EntityManger.flush()方法进行强制同步,如果设定了关联操作,也会进行关联操作
持久单元(Persistence Units),在persistence.xml可以配置多个单元在代码中注入使用
打包,persistent units可以和war或者ejb放到一起打包,也可以单独打成jar包然后放入war或者ear中
如果放到ejb中一起打包,则persistence.xml要放到ejb/META-INF/下面
如果放到war中一起打包,则persistence.xml要放到WEB-INF/classes/META-INF/下面
如果单独打成jar包,要放到war的WEB-INF/lib下面
如果单独打成jar包,要放到ear的lib文件夹下面
- JSR-338 学习笔记(JPA)
- JSR-343学习笔记(JMS)
- JPA学习笔记-JPA基础
- JPA学习笔记-JPA进阶
- 内容管理核心JCR (JSR-170) 学习笔记
- JSR 168 Java Portlet 学习笔记
- JPA学习笔记
- JPA学习笔记
- JPA学习笔记 [壹]
- JPA学习笔记
- jpa学习笔记
- jpa学习笔记
- EJB JPA 学习笔记
- JPA学习笔记2
- jpa学习笔记
- JPA视频学习笔记
- JPA学习笔记
- jpa学习笔记
- [hihoCoder] #1306 : 股票价格 解题报告
- AFNetworking NSURLConnect 到NSURLSession
- [整理]通过http1.1 GET, POST, PUT, PATCH, DELETE, HEAD, TRACE理解真正的RESTFUL
- android小知识——Android混淆打包及混淆后运行错误
- 淘宝数据抓取1.0-根据url抓取尺码和价格
- JSR-338 学习笔记(JPA)
- 部署 Bonobo Git Server 时,出现 HTTP 错误 500.19 解决办法
- HDU 1166 敌兵布阵(树状数组)
- Qt入门-文本框类QLineEdit和QTextEdit
- 349. Intersection of Two Arrays
- ngnix+tomcat简单的负载均衡
- Android小知识——关于引入第三方jar包引发的java.lang.NoClassDefFoun
- linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
- cp直接覆盖不提示按Y/N的方法