JPA
文章平均质量分 54
yubin1285570923
这个作者很懒,什么都没留下…
展开
-
Jpa:@column注解可以配置在属性字段,也可以配置在属性对应的get方法上面取决于@Id注解在哪里就哪里起作用
在JPA实体bean当中,@column注解可以配置在属性字段,也可以配置在属性对应的get方法上面,但是任何情况下只有一种方式会生效。那就是如果@Id注解配置在属性字段上面就会忽略所有配置在get方法上面的@column注解配置信息,如果@Id注解配置get方法上面就会忽略所有配置在属性字段上面的@column注解信息。...原创 2020-06-29 09:36:01 · 903 阅读 · 0 评论 -
Oracle:数据库字段大小写问题
因为 ORACLE 在建表/字段时,如果没有双引号, ORACLE 会把表名、字段名全部转化为大写字母,然后写入数据字典。访问数据字典时,没有双引号 ORACLE 会将其转化成大写然后再去数据字段中查找。不仅仅关键字不区分大小写,函数名,过程名,表名称,pl/sql块中变量名,用户名,密码等都不区分大小写[1]。可能很多人都会误认为 ORACLE 是不区分大小写的,原因是我们在写查询...原创 2020-01-13 14:57:28 · 4012 阅读 · 0 评论 -
注解作用:@DateTimeFormat, @JsonFormat,@JsonProperty,@JsonIgnoreProperties(value={“hibernateLazyInitializ
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @JsonFormat( pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8" ) private Date submitdate;js中格式化时间:var tim...原创 2020-01-09 17:13:38 · 716 阅读 · 0 评论 -
JPA: Spring Data JPA @OneToMany 注解参数 orphanRemoval,一对多删除详解
分析了OneToMany级联操作多方的插入、更新、删除。我们得到如下结论:1、插入,建议一方设置mappedBy,好处是只会执行一条insert语句。不会执行多余的update外键的sql。2、更新,没有区别3、删除,一方设置mappedBy。一方维护的多方集合remove,多方显示删除。orphanRemoval插入和更新都没有什么问题。但是删除就有些奇怪了,一方和多方均要...原创 2019-12-13 14:03:32 · 1106 阅读 · 0 评论 -
JPA:Spring Data JPA @OneToMany级联,多方删除修改新增总结(尤其删除操作:添加注解属性orphanRemoval在下一篇解释删除)
一方在oneToMany上设置的级联保存和更新很好理解,多方会随着一方进行保存和更新。但是级联删除其实只是指一方删除时会把关联的多方数据全部删除,并不能删除一方维护的多方list中remove掉的数据。所以本文所讨论的实验和是否设置级联删除是没有关系的。本文基于实验,我们先设定有如下对象,User为一方,ContactInfo为多方。每个user有多个contactInfo。所做的操...原创 2019-12-13 14:03:24 · 2480 阅读 · 1 评论 -
JPA:新增更新删除操作
新增操作:双向关系需要双方都维护一次关系。更新操作:只需要更新需要的内容,关系已经维护的不需要维护。不然关系比较复杂的容易报错(堆栈溢出)更新时候不能直接保存页面的数据dto,应该通过查询或者级联获取到数据库中的持久化状态数据才可以更新。可以使用org.springframework.beans.BeanUtils.copyProperties(dto,实体,"id","en...原创 2019-12-09 22:53:45 · 3177 阅读 · 0 评论 -
Hibernate 映射字段问题[ImprovedNamingStrategy]
Hibernate 映射字段问题[ImprovedNamingStrategy]Hibernate 使用JPA 对于映射有3种规则可以配置:DefaultNamingStrategy,ImprovedNamingStrategy,EJB3NamingStrategy这里只说ImprovedNamingStrategy,其他自行看Hibernate代码,ImprovedNamingStra...原创 2019-12-12 22:00:34 · 397 阅读 · 0 评论 -
JPA:异常情况No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer an
一、No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer异常信息如下所示:com.fasterxml.jackson.databind.exc.Invali...原创 2019-12-03 12:54:54 · 886 阅读 · 0 评论 -
JPA:双向多对多
@JoinColumn(name = "address_id",referencedColumnName="ref_id") 默认情况下,关联的实体的主键一般是用来做外键的。但如果此时不想主键作为外键,则需要设置referencedColumnName属性。属性referencedColumnName标注的是所关联表中的字段名,若不指定则使用的所关联表的主键字段名作为外键。...原创 2020-08-03 11:07:22 · 140 阅读 · 0 评论 -
JPA:双向一对一
例如:外键在哪边那么哪边就是维护关联关系。至于是哪个主控方,那么就是看使用哪张表到哪张表,比如单向多对一就是多的一方主控,单向一对多就是一的一方主控,但是外键都在多的一方。现假设有Person表和Address表,是一对一的关系,在Person中有一个指向Address表主键的字段addressID,所以主控方一定是Person,所谓主控方就是能改变关联关系的一方,Person只要改变add...原创 2019-11-28 00:09:43 · 338 阅读 · 0 评论 -
JPA:双向多对一
jpa 实体生命周期有四种状态New:瞬时对象,尚未有id,还未和Persistence Context建立关联的对象。Managed:持久化受管对象,有id值,已经和Persistence Context建立了关联的对象。Datached:游离态离线对象,有id值,但没有和Persistence Context建立关联的对象。Removed:删除的对象,有id值,尚且和P...原创 2019-11-27 23:34:06 · 418 阅读 · 0 评论 -
JPA:单向一对多
单向一对多: 单向1-n关联关系保存时候一定会多出update语句,因为n的一段插入时候不会同时插入外键列。 默认对关联的多的一方使用懒加载策略,可以使用@OneToMany的fetch属性改变默认的加载策略。 默认情况,若删除1的一段,则会先将关联的n的一方的外键置未空,然后执行删除,可以通过@OneToMany的cascade属性设置级联删除。cascade={cAS...原创 2018-11-30 00:10:52 · 490 阅读 · 0 评论 -
JPA:单向多对一
一、单向多对一 保存单向多对一时候,建议先保存一的一方,后保存n的一方,这样不会多出额外的update语句。 默认情况下使用左外连接的方法是获取n的一端对象和其关联的1的一端对象,可以使用@ManyToOne的fetch属性来改变默认的关联加载策略。 不能直接删除1的一方,因为有外键关联约束 修改可以总结:外键是在建立在哪一方---》首先,...原创 2018-11-29 23:50:02 · 934 阅读 · 0 评论