`
yq81862
  • 浏览: 41010 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate两个属性映射同一字段

阅读更多
如果出现hibernate-should be mapped with insert="false" update="false错误
说明你有两个属性映射了数据库的同一字段值,有两个情况:
第一:在配置的时候拷贝别的属性的映射,忘记修改。
第二:真的需要两个属性映射同一字段值。
第一种情况,属于不细心造成的,修改正确的值就是了。
第二种情况,这样做的优点是,添加的时候不需要查询对象,直接设置Id就行了。
查询的时候,可以关联出对象。也就是添加和查询都很方便。
如何实现两个字段映射一个值:
    public class Role {  
        @ManyToOne(fetch = FetchType.LAZY)  
        @JoinColumn(name = "USER_ID", nullable = false, updatable = false, insertable = false)  
        private User user;  
      
        @Column(name = "USER_ID", nullable = false, precision = 10, scale = 0)  
        private Long userId;  
        ...getter,setter...  
    }  

注意两点:
第一点不建议把注解写在属性上,最好是卸载getter方法上,这种好习惯是可以避免不细心引发的错误的。
比如第一种情况拷贝忘记修改一样,都是不好的习惯造成的。有经验的程序员都会有自己的习惯,因为他们
都遇到过这样的错误,就会通过自己的习惯来避免这些粗心造成的错误。新手最常见的错误就是一会程序能
运行,一会又不能运行,这个我认为就是好习惯没有养成,不知道怎么写能避免不必要的错误,这也可能为什么有
经验的程序员工资比较高吧。写在getter方法上可以避免遗忘生成getter方法。
第二点一定要配置updatable = false, insertable = false,如果不配置还是会出现hibernate-should be mapped with insert="false" update="false错误


/**如果有任何问题,可以加入群228920057进行讨论*/
分享到:
评论

相关推荐

    详解Hibernate一对一映射配置

    在Java持久化框架Hibernate中,一对一(One-to-One)映射是对象关系映射的一种常见方式,用于表示两个实体之间一对一的关系。这种关系通常出现在一个实体的实例只能与另一个实体的单个实例相关联的情况。下面我们将...

    hibernate关联映射实例

    在Java企业级开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。本文将深入探讨“hibernate关联映射实例”中的关键知识点,包括一对多、多对多和继承映射,这些都是Hibernate中...

    Hibernate注解 关联关系映射注解.docx

    多对多的关联关系可以使用`@ManyToMany`注解,Hibernate会自动创建一个中间表来存储两个实体类之间的关联。如果需要自定义中间表的名称或字段,可以使用`@JoinTable`注解。在双向多对多关联中,依然需要`mappedBy`来...

    Hibernate一对一关联映射(注解)

    一对一关联映射是指在数据库中两个表之间存在一对一的关系,例如,一个人只有一个身份证,一个身份证也只属于一个人。在Hibernate中,我们可以通过@OneToOne注解来实现这种映射。 ### @OneToOne注解 1. **注解位置...

    Hibernate继承映射的第一种策略:每棵类继承树对应一张表

    这个例子可能包含了一个基类`BaseEntity`,以及两个子类`User`和`Admin`,并展示了如何配置和使用这些类的示例。解压后,可以查看代码以深入理解这一策略的实现细节。 总之,单一表继承策略是一种简单且直观的...

    hibernate继承映射.rar

    例如,在Hibernate-lab2中,如果我们有一个基类`Person`和两个子类`Student`和`Teacher`,那么它们都会映射到同一张`Person`表中,通过discriminator值来区分它们的类型。 三、联合继承( Joined Table Inheritance...

    hibernate 双向一对一基于主键的关联映射

    总结,双向一对一基于主键的关联映射是Hibernate中一种重要的关联类型,它提供了两个实体类之间的直接导航属性,使得数据操作更加便捷。在实际项目中,需要根据需求谨慎选择关联类型,并确保数据一致性。

    14 继承(一)(整个继承树映射到一张表)

    比如,如果有一个`Animal`类和两个子类`Dog`和`Cat`,那么鉴别器字段可以分别存储"DOG"和"CAT"来表示不同子类。 4. **继承映射的配置**:在Hibernate的XML映射文件或注解中,需要显式声明继承关系。例如,使用`@...

    hibernate源码

    主键关联是通过两个实体共享同一主键来实现,而外键关联则是通过在一方或双方创建一个指向另一方的外键字段。 4. **延迟加载与单端加载**: `hibernate_lazy_for_single_end`可能涉及到了Hibernate的单端延迟加载...

    17 继承(四)每一个具体的类 映射到一张表

    例如,假设我们有一个抽象类`Person`,两个子类`Student`和`Teacher`,我们可以这样配置: ```xml <!-- ID相关配置 --> <!-- 其他Person的属性 --> <!-- Student的特定属性 --> <!-- Teacher的...

    Hibernate学习笔记_songjignhao_1

    在 Hibernate 映射文件中,通过将 `column` 属性设置为相同的列名,表明它们共享同一主键。而在外键关联中,一方(通常是非主表)拥有指向另一方(主表)的外键。 此外,我们还提到了多对多关联关系,这通常涉及一...

    Hibernate的多对一和一对多操作实例

    在这个映射文件中,`<set>`标签用于定义“一对多”关系,`<one-to-many>`标签则指明了与之关联的实体类。`inverse`属性表示是否反向维护关联关系,`lazy`属性控制加载策略,而`cascade`属性则定义了级联操作的行为。...

    hibernate学习笔记

    - **唯一外键关联映射**:通过唯一外键来关联两个实体。 - **一对多关联映射**: - **单向关联**:一方只知道另一方的存在,但另一方不知道这一方。 - **双向关联**:双方都知道对方的存在。 - **多对多关联...

    hibernate一对一的两种实现方式

    主键关联适用于两个实体共用同一主键的情况,而外键关联则适用于一个实体包含另一个实体主键作为其字段的情况。在实际应用中,根据业务需求选择合适的方式进行关联映射。通过理解并灵活运用这两种方式,开发者可以更...

    Hibernate练习题

    - 如果在事务中对同一个对象的同一属性进行了多次修改,提交时Hibernate只会生成一条UPDATE语句。所以,上述程序提交时只需提交1条UPDATE语句,答案是B) 1。 8. SessionFactory的理解: - A) 错误:...

Global site tag (gtag.js) - Google Analytics