Hibernate
陈振阳
我翻开历史一查,这历史没有年代,歪歪斜斜的每页上都写着仁义道德四个字。我横竖睡不着,又仔细看了半夜,才从字缝缝里看出字来。满页都写着两个字是,吃人。
展开
-
Hibernate,JPA 对象关系映射之关联关系映射策略
关联关系映射关联关系映射,是映射关系中比较复杂的一种映射关系,总的说来有一对一、一对多和多对多几种关系。细分起来他们又有单向和双向之分。下面我们逐一介绍一下。单向 OneToOne单向一对一是关联关系映射中最简单的一种,简单地说就是可以从关联的一方去查询另一方,却不能反向查询。我们用下面的例子来举例说明,清单 1 中的 Person 实体类和清单 2 中的 Address 类就是这种单向的一对一关系原创 2015-04-03 16:22:17 · 754 阅读 · 0 评论 -
让hql支持按位与运算
摘要: 目前hibernate不支持按位与运算,近期的项目又需要这样的操作,好在hibernate提供了相关的扩展功能,能自己实现相关的操作一、背景工作中,使用的数据库为MySQL,项目使用的语言为java,采用了JPA技术,底层用的是hibernate,项目中有些需要进行按位与运算,但是hql语言确不支持,该文章描述了如何让我们的程序支持按位与的操作二、实现首选实现SQLFunction接口pac原创 2017-12-26 22:56:16 · 1272 阅读 · 0 评论 -
Hibernate与DDD#标准类型
DDD中的标准类型可以放到存储中,也可以定义在Java运行时环境中;@Data@Entitypublic class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String username; private String原创 2017-11-02 10:40:07 · 664 阅读 · 0 评论 -
Hibernate与DDD#实体与值对象
@Data@Embeddable@Access(AccessType.PROPERTY)public class Author { private String firstName; private String lastName;}@Data@Entity(name = "Book")public class Book { @Id private Long i原创 2017-10-20 21:29:47 · 1128 阅读 · 0 评论 -
Spring Data Jpa 自带事务配置
测试Atomikos分布式事务时,查看Atomikos的事务日志,发现创建了远远多于自定义@Transactional标志的方法个数的Transaction对象;通过查看SimpleJpaRepository的源码,发现其自带了事务定义;@Repository@Transactional(readOnly = true)public class SimpleJpaRepository原创 2017-10-28 19:51:11 · 6736 阅读 · 0 评论 -
Hibernate 乐观锁之Timestamp
表现使用Timestamp类型的字段作为乐观锁的版本号,在一个事务中更新两次(save,get,update)之后,抛出OptimisticLockingFailureException异常;解决历程在排除了配置、事务等的原因之后,实在没有办法,引入log4jdbc,查看真正执行的SQL语句; 发现的问题是,应用中更新的时候Timestamp的值与数据库中的值会相差一秒钟,版本号不一致导致Hibe原创 2017-10-10 16:45:17 · 1364 阅读 · 0 评论 -
String LOBs on PostgreSQL with Hibernate 3.6
For String properties that may contain more than 255 characters, it is advised to add a @Lob annotation to the appropriate property. For example, to keep a comment text in an entity, one would write:@L原创 2015-04-08 13:29:35 · 1121 阅读 · 0 评论 -
关系/对象映射 多对多关系(@ManyToMany 注释)【重新认识】
查了好多资料 old: @ManyToMany 注释:表示此类是多对多关系的一边,mappedBy 属性定义了此类为双向关系的维护端,注意:mappedBy 属性的值为此关系的另一端的属性名。 例如,在Student类中有如下方法: 被控方:@ManyToMany(fetch = FetchType.LAZY, mappedBy = "students")public Set原创 2015-04-03 16:40:46 · 2125 阅读 · 2 评论 -
JPA OneToOne,OneToMany和ManyToMany的mappedBy属性
在四种关联关系OneToOne,OneToMany,ManyToOne和ManyToMany中,只有OneToOne、OneToMany和ManyToMany这三中关联关系有mappedBy属性。 下面是mappedBy属性在java doc里边的解释: the field that owns the relationship. Required unless the relationship原创 2015-04-03 17:31:54 · 10764 阅读 · 1 评论 -
hibernate之inverse、cascade----同时保存主从表信息
总结:inverse不让主表对象生成快照和缓存时生成外键那部分信息,从而达到两个save语句执行后只会有两条insert语句而不会有update语句;cascade(级联)是为了只写一句save就能同时保存主从表信息。这是inverse部分:如果我们需要新增一个user和一个dog,而这个dog正好属于这个user,那么我们会这么写:@org.junit.Test public void ...原创 2019-01-12 11:07:53 · 280 阅读 · 0 评论