jpa简单映射总结一

对jpa中一些最基本的映射注解进行总结:

 

@Entity

 

将某个类标记为实体类,将在数据库中创建对应的表,其中的name属性为可选设置,如果不设置的话,数据库中表的名字

 

与类名一致,如果设置@Entity(name="t_person"),则表的名字就变成t_person。

 

@Id

 

标记为数据库表的id唯一标识字段。

 

@GeneratedValue

 

经常和@Id一起使用,指定表的id生成策略,可以不指定,如果不指定的话,表示不使用id生成策略,则进行保存操作时,

 

需要自己指定id。如果指定@GeneratedValue而不指定任何参数时,表示使用自增长的Id生成策略,类似于

 

hibernate中的native生成策略。

 

使用@Id和@GeneratedValue时需要注意一点:这两个注解既可以放在field上面,例如private int id;也可以放在

 

property前面,例如:public int getId()。如果放在field上面,则数据库中的字段与field一致,即使某些field没有

 

getter和setter,数据库中也会有相应的字段。如果是放在property上面,则数据库中只会有包含getter和setter的那

 

些property。

 

@Transient

 

指定该属性不在数据库中生成对应的字段。

 

@Column(name="XXX")

 

如果不在属性上指定任何注解,则该属性保存在数据库中对应的字段名与属性名一致。如果指定该属性,则数据库中对应的

 

字段名就为该注解指定的名称。

 

@PersistenceContext

 

放在EntityManager前面定义,PersistenceContext,称为持久化上下文,它一般包含有当前事务范围内的,被管理的

 

实体对象(Entity)的数据。每个EntityManager,都会跟一个PersistenceContext相关联。PersistenceContext中存

 

储的是实体对象的数据,而关系数据库中存储的是记录,EntityManager正是维护这种OR映射的中间者,它可以把数据从

 

数据库中加载到PersistenceContext中,也可以把数据从PersistenceContext中持久化到数据库,EntityManager

 

Persistmergeremoverefreshflush等操作来操纵PersistenceContext与数据库数据之间的同步!

 

EntityManager与Hibernate中的Session类似。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值