JPA中创建实体时,需要声明实体的主键及其主键生成策略。我们有一个实体类叫做Email,其主键上声明如下:
@Id
@Column(name = "EMAIL_ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "emailSeq")
@SequenceGe...
public void persist(Object entity)
persist方法可以将实例转换为managed(托管)状态。在调用flush()方法或提交事物后,实例将会被插入到数据库中。
对不同状态下的实例A,persist会产生以下操作:
1. 如果A是一个new状态的实体,它将会转为managed状态;
2. 如果A是一个managed状态的实...
使用criteria 查询
为了更好的理解criteria 查询,考虑拥有Employee实例集合的Dept实体,Employee和Dept的元模型类的代码如下:
//All Necessary Imports
@StaticMetamodel(Dept.class)
public class Dept_ {
public static volatile Sin...
ORM框架给我们带来的不仅仅是对象映射,很多产品带给我们带来了一些非常实用的解决方案。比如延时加载。延时加载就是对象的某些关联在持久层加载对象时并没有真正的从持久库中加载,而是载入一个代理,当真正的使用到这些关联的属性时,如调用get方法时,代理会从持久库中加载。整个过程不需要我们来实现,因为大部分ORM都有,所以它也成了JPA规范的一部分。关于更多的JPA延时加载的资料,这里就不多说了,本文主要...