首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Hibernate 5.3.10一对多insertable = false的行为与Hibernate 5.2.1不同

Hibernate是一个开源的对象关系映射(ORM)框架,用于将Java对象映射到关系数据库中的表。它提供了一种方便的方式来处理数据库操作,使开发人员能够更专注于业务逻辑而不是底层数据库操作。

在Hibernate 5.3.10版本中,一对多关系中的insertable属性的行为与Hibernate 5.2.1版本有所不同。insertable属性用于指定关联关系中的外键列是否可插入数据。当insertable属性设置为false时,表示外键列不可插入数据,只能通过更新操作来维护关联关系。

在Hibernate 5.2.1版本中,当insertable属性设置为false时,Hibernate会在插入主对象时自动忽略外键列的插入。但在Hibernate 5.3.10版本中,当insertable属性设置为false时,Hibernate会抛出异常,提示外键列不可插入数据。

这种行为的变化可能是由于Hibernate在新版本中对一对多关系的处理逻辑进行了调整。为了解决这个问题,可以考虑以下几种解决方案:

  1. 将insertable属性设置为true:如果外键列需要在插入主对象时一同插入数据,可以将insertable属性设置为true。这样,在插入主对象时,Hibernate会自动插入外键列的值。
  2. 使用更新操作维护关联关系:如果外键列不可插入数据,可以通过更新操作来维护关联关系。在插入主对象后,通过更新外键列的值来建立关联关系。
  3. 检查Hibernate文档和社区:由于Hibernate是一个活跃的开源项目,可能存在其他解决方案或者相关的配置选项。建议查阅Hibernate的官方文档和社区资源,以获取更详细的信息和解决方案。

腾讯云提供了云数据库MySQL和云数据库MariaDB等产品,可以作为Hibernate的后端数据库。这些产品提供了高可用性、可扩展性和安全性,适用于各种规模的应用场景。您可以通过以下链接了解更多关于腾讯云数据库的信息:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

「拥抱开源」从表设计到 JPA 实现

B 每个实体至多与 A 一个实体有关系。 满足以上两点,即 A B 关系是一对一。 一对 1:N A 每个实体至少 B N(N>0)个实体有关系。...B 每个实体至多与 A 一个实体有关系。 满足以上两点,即 A B 关系是一对,B A 关系是对一。 M:N A 每个实体至少 B M(M>0)个实体有关系。...B 每个实体至少 A N(N>0)个实体有关系。 满足以上两点,即 A B 关系是。...---- 02 JPA 关联 在 JPA 中分别使用 @OneToOne、@OneToMany、@ManyToOne、@ManyToMany 注解表示一对一、一对对一、三种关联关系。...订单明细数据关系是一对。即@OneToMany,注意这里需要级联保存、修改、删除、刷新所有的操作。 商品明细数据,也包含两种关联关系。 商品数据之间关系是对一。

1.6K20

解决:DuplicateMappingException: Table contains physical column name referred to by multiple ... .

项目用 spring-data-jpa 。 原本对于表和本类每个字段都有给注解 @Colum 来对应,其实不用给也可以。把这些注解注释掉工程就可以正常启动了。...FetchType.EAGER) @JsonIgnore // @JoinColumn(name="employee_no", referencedColumnName="usernumber", insertable...=false, updatable=false) private User employee; // @Column(name = "reason", nullable = false)...(网上其它情况) 当有一个物理表映射两个或多个逻辑表名称时,会发生此异常。...如 因为那里有多个@JoinColumns使用相同列名(user_id) 为每个JoinColumns(在注释中name参数中定义)设置一个不同名称: @OneToOne @JoinColumn(

1.3K30

JPA实体类中注解

给作为新主键,这种方式效率比较低   SEQUENCE:根据底层数据库序列来生成主键,条件是数据库支持序列   IDENTITY:主键增长有数据来维护,可能不同数据库有不同策略  @Column...,接下来时针对实体实体之间关联注解: 一对 一般是在一般维护关系,也就是一方作为关系维护端,负责维护外键,而一一方是不能操作外键; @oneToMany(cascade={CascadeType... 确定维护关系,都是通过中间表,这样两端就都是中间表形成一对!...@OneToMany 描述一个一对关联,该属性应该为集体类型,在数据库中并没有实际字段。 ....对多关联上是两个一对多关联,但是在ManyToMany描述中,中间表是由ORM框架自动处理  可选  targetEntity:表示对多关联另一个实体类全名,例如:package.Book.class

3.8K70

系统学习javaweb-10-Hibernate配置api操作

Hibernate最重要对象,只要使用hibernate数据库操作,都用到这个对象 ——– session.beginTransaction(); 开启一个事务,hibernate要求所有的数据库操作必须有事务环境...//(测试) 会自动加载映射文件:User.hbm.xml .buildSessionFactory(); 4 Hibernate映射 一对对一映射(one2many) 映射...、每个类映射一张表、每个子类映射一张表) 4.1 集合映射 (collection)用户收货地址,一个用户对应多个地址 4.2 对一一对映射 在一对多与对一关联关系中,保存数据最好通过多一方来维护关系...配置一对多与对一:“双向关联” 只配置一对:“单项一对” 只配置对一:“单项对一” (配置了哪一方,哪一方才有维护关联关系权限) 【Inverse控制反转属性】 Inverse...Hibernate提供了基于应用程序级别的缓存, 可以跨多个session,即不同session都可以访问缓存数据 【二级缓存使用步骤】 (1)开启二级缓存 (2)指定缓存框架 (3

93320

SpringData JPA就是这么简单

后来去看了JPA一对对一博文去参考了一下,感觉我还是没有错。 最后才发现大多数博文都是在get方法上写注解,而我就在属性上直接写注解了。...2,cascade属性表示与此实体一对一关联实体级联样式类型。...3,fetch属性是该实体加载方式,默认为即时加载EAGER 4,optional属性表示关联该实体是否能够存在null值,默认为ture,如果设置为false,则该实体不能为null, 5,...; String columnDefinition() default ""; String table() default ""; } 1,@JoinColumn注释是保存表表之间关系字段...REFRESH,当遇到问题时候再添加MERGER等等,不然一开始会很乱 http://blog.sina.com.cn/s/blog_9c2cda810101jw4a.html 一对对一配置问题

1.6K80

day31_Hibernate学习笔记_03

一、Hibernate关联关系映射() 在数据库表中如何表达对多关系:   使用中间表,分别引用两方ID。 在对象中如何表达对多关系:   两方都使用集合表达。...,如果你使用集合只是为了获取集合长度,则Hibernate只会发送count语句查询集合长度     // 演示环境:一对,1个客户有2个订单,共有2个客户     public void fun7...应用程序如果希望访问游离状态代理类实例,必须保证它在持久化状态时已经被初始化。 (1)一对或者对多关联检索中使用。(2)应用程序不需要立即访问或者根本不会访问对象延时检索使用。...SQL语法基本一致,不同是HQL是面向对象查询,查询是对象和对象中属性。 HQL关键字不区分大小写,但是类名和属性名区分大小写。...// 0,1  表示:从数据库表第一行开始,一行为一页         // 1,1  表示:从数据库表第二行开始,一行为一页         // 2,1  表示:从数据库表第三行开始,一行为一页

2.4K40

hibernate笔记(二)

目标: 关联映射(hibernate映射) 1. 集合映射 2. 一对多与对一映射 (重点) 3. 映射 4. inverse/lazy/cascade 1....关联映射 需求1: 部门员工 一个部门有多个员工; 【一对】 多个员工,属于一个部门 【对一】 需求2: 项目开发员工 一个项目,有多个开发人员!...【对一映射一对 代码 需求:员工部门 数据库: 设计javabean封装: 映射: public class Dept { private int deptId; private...少生成2条update sql */ } } 总结: 在一对多与对一关联关系中,保存数据最好通过多一方来维护关系,这样可以减少update语句生成,从而提高hibernate执行效率...配置一对多与对一,这种叫“双向关联” 只配置一对, 叫“单项一对” 只配置对一, 叫“单项对一” 注意: 配置了哪一方,哪一方才有维护关联关系权限!

52310

Hibernate总结以及在面试中一些问题.

他很大程度简化DAO层编码工作 ③.hibernate 性能非常好,因为它是个轻量级框架。映射灵活性很出色。它支持各种关系数据库,从一对一到各种复杂关系。...1.使用双向一对多关联,不使用单向一对 2.灵活使用单向一对多关联 3.不用一对一,用对一取代 4.配置对象缓存,不使用集合缓存 5.一对集合使用Bag,集合使用Set 6....一对: 该属性在一方。...应该在一方设置 inverse=true ,一方设置 inverse=false一方也可以不设置inverse属性,因为默认值是false),这说明关联关系由一方来维护。...一对一: 其实是一对一个特例,inverse 设置也是一样,主要还是看关联关系属性在哪一方,这一方inverse=false对一: 也就是一对反过来,没什么区别。

1.6K120

Hibernate关联映射

数据库配置文件(*.properties/*.cfg.xml):它是指定数据库连接时需要连接信息,比如连接哪种数据库、登录数据库用户名、密码以及连接字符串等。...接下来让我们一起走进Hibernate几种关联映射关系: 单向一对一关联映射(one-to-one): 两个对象之间一对关系,例如:Person(人)- IdCard(身份证) 有两种策略可以实现一对关联映射...> 注意:因为一对主键关联映射扩展性不好,当我们需要发生改变想要将其变为一对时候变无法操作了,所以我们遇到一对一关联时候经常会采用唯一外键关联来解决问题,而很少使用一对一主键关联。...注意:它与对一区别是维护关系不同 对一维护关系是:指向一关系,有了此关系,加载时候可以将一加载上来。..."/> 了解inverse属性: inverse属性可以用在一对双向关联上,inverse属性默认为false,为false表示本端可以维护关系,如果inverse为true,则本端不能维护关系

1.4K60

Hibernate注解之基本注解注解使用

Hibernate注解之基本注解注解使用 1.1. 使用注解须知 1.2. 类级别注解 1.3. 属性级别的注解 1.4. 主键相关注解 1.5. 非主键相关注解 1.6. 实例 1.7....参考文档 Hibernate注解之基本注解注解使用 使用注解须知 我们在使用注解自动创建表时候,系统会默认为我们创建一张表Hibernate_sequence,我们可以在Hibernate.cfg.xml...-- 配置不生成Hibernate_sequence --> false...默认为 false length - 可选,表示该字段大小,仅对 String 类型字段有效,默认值255....unique 生成唯一约束,就是这个字段值唯一,默认false @JoinTabl 当涉及到映射关系时候,用来定义第三表表名,和字段名称。

2K10

Hibernate】关系映射

注意:因为一对主键关联映射扩展性不好,当我们需要发生改变想要将其变为一对时候变无法操作了,所以我们遇到一对一关联时候经常会采用唯一外键关联来解决问题,而很少使用一对一主键关联。...比如学生和班级关系: 注意:它与对一区别是维护关系不同 *对一维护关系是:指向一关系,有了此关系,加载时候可以将一加载上来 *一对多维护关系是:一指向关系,有了此关系,...因为一端Student不知道Classes存在(也就是Student没有维护Classes关系)所以在保存Student时候关系字段classesid是为null,如果将该关系字段设置为非空...五.双向一对多关联映射 采用一对双向关联映射目的主要是为了主要是为了解决一对单向关联缺陷而不是需求驱动。...”/> inverse属性 * inverse属性可以用在一对双向关联上,inverse属性默认为false,为false表示本端可以维护关系,如果inverse为true,则本端不能维护关系

73110

day30_Hibernate学习笔记_02

一、Hibernate中对象状态 对象状态 瞬时态|临时态:Transient     1、没有Hibernate产生关联(没有Session有关联)。     ...2、数据库中记录没有产生关联,即对象没有ID(有关联:就是数据库中ID有对应)。 持久态:Persistent     1、Hibernate有关联(session有关联)。     ...表之间关系存在3种:一对一对一。(回顾) ? 一对:1表(主表)必须主键和多表(从表)必须外键,主表主键从表外键形成主外键关系。...:提供中间表(从表),提供2个字段(外键)分别对应两个主表。 一对一:非常少见。 如何使用面向对象思想通过代码描述对象对象之间关系?...关联关系映射(一对) 4.1、一对实现【掌握】 4.1.1、实现类 Customer.java package com.itheima.domain; import java.util.HashSet

95820

框架篇二

它支持各种关系数据库,从一对一到各种复杂关系。...● 若为false,就跟get方法查找顺序一样,只是最终若没发现符合条件记录,则会抛出一个ObjectNotFoundException。 3.Hibernate是如何延迟加载?   ...类类之间关系主要体现在表表之间关系进行操作,它们都是对对象进行操作,我们在程序中把所有的表类都映射在一起,它们通过配置文件中many-to-one、one-to-many、many-to-many...● 使用双向一对多关联,不使用单向一对   ● 灵活使用单向一对多关联   ● 不用一对一,用对一取代   ● 配置对象缓存,不使用集合缓存   ● 一对集合使用Bag,集合使用Set   ...● 通过一种在不同应用程序和项目间一致方法来处理配置文件,Spring能消除各种各样自定义格式属性文件需要。

54940
领券