Hibernate 5学习笔记(四)

本文详细介绍了Hibernate 5中的一些关键注解,如@OneToOne,批处理的使用,以及getCurrentSession与OpenSession的区别。还探讨了BigInteger与Integer的区别,以及Hibernate的缓存机制,包括一级缓存和二级缓存的工作原理。
摘要由CSDN通过智能技术生成

深夜里的一盏灯,要是昏黄的,有一个带着眼镜的孩子,正在奋笔疾书,那不是写代码是在写世界。好啦,回到正题,通常如果单标签操作都是比较容易上手的,但是涉及到多表就会让头发感到畏惧和无奈。所以,为了我们乌黑靓丽的头发,用Hibernate的注解一定太符合人心。

一、这些注解要注意

@OnetoOne,关联的一方才设置*/

@OneToOne(cascade=CascadeType.ALL)

@JoinColumn(name="外键列名",referencedColumnName="参考的另一个表中的哪一列",unique=true)

/**双向一对一,就是用主键关联。被关联的一方不需要设置@OnetoOne,关联的一方才设置其余属性照常*/

/**无外键关联方一般外键维护是交给有外键的关联方并且这边就不需要些joinColumn了*/

@OneToOne(mappedBy="另一方中关联本方的属性名,将外键维护交给对方",cascade=CascadeType.ALL)

/**有外键的关联方*/

@OneToOne(cascade=CascadeType.ALL)

@JoinColumn(name="外键列名",referencedColumnName="参考的另一个表中的哪一列(可不写)",unique=true)

//表示唯一性 多对多注解(因为外联的是中间表,一般级联操作都是all,就算是删除也是删除中间表中的属性) 例如学生对课程,这边是学生。

Path<Object> path = root.get("字段名");
CriteriaBuilder.In<Object> in = criteriaBuilder.in(path);
in.value(OrderRefund.Status.pending);
in.value(OrderRefund.Status.approved);
in.value(OrderRefund.Status.received);
in.value(OrderRefund.Status.receiveing);
restrictions = criteriaBuilder.and(restrictions, criteriaBuilder.and(in));

二、Hibernate难道根据实体类来做事情的,一定要丢一个PO类给它吗?

答案是没错,是的,丢一个数字,字符串是想做啥子?人家Hibernate本来就是靠Entity持久化对象去数据库做数据持久化的操作。

Unknown entity: java.lang.Integer; nested exception is org.hibernate.MappingException: Unknown entity: java.lang.Integer
org.springframework.orm.hibernate5.HibernateSystemException: Unknown entity: java.lang.Integer; nested exception is org.hibernate.MappingException: Unknown entity: java.lang.Integer
	at org.springframework.orm.hibernate5.SessionFactoryUtils.convertH
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值