JPA2

脏数据更新:

作用:持久化对象,一旦修改,事务提交的时候也会自动修改

1、没有执行meger,也能完成修改
2、加了meger,内容没有改变,方法也没有执行

执行流程:

第一步:拿到entityManager,开启事务
第二步:通过entityManager拿到一个对象,那么现在这个对象就是持久化的对象
这个对象会放到一级缓存里面,JPA会为当前这个对象准备一个快照(把这个对象进行了备份)
第三步:提交事务
它会把快照 与 你现在这个对象的数据进行对比
如果相同,就不需要修改,也不会发送SQL(性能就高了)
当不相同的时候,JPA就会认为现在这个数据是脏数据
脏数据它就会在事务提交的时候,把它进行数据库的同步(发送update SQL语句)

单向多对一

我们可以通过一个员工知道它属于那个部门,而不需要知道一个部门里 有哪些员工,这就是所谓的单向的。
可以通过保存员工的数据的同时达到保存部门信息的效果,但是不能通过保存部门信息而保存员工数据,这也是单向的。
多对一映射原理:在多的一端加入一个外键指向一的一端,它维护的关系多指向一。
一的一方,不需要维护关系,所以和普通的配置一样既可以了。
多的一方,需要维护双方关系,所以里面配置有一的一方的引用。

创建两个类,一个员工,一个部门,多个员工指向部门,然后在员工类加上外键,指向部门,从而产生关联关系,也属于从属关系。

再添加数据的时候,一定要先添加员工,在添加部门,这样效率更加快,如果先添加部门,在添加员工,从而会产生多条SQL语句,是先查询了再增加,推荐使用先多后一

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值