`

hibernate中队mappedBy的理解

阅读更多

对于mappedBy的理解:

a) 只有OneToOne,OneToMany,ManyToMany上才有mappedBy属性,ManyToOne不存在该属性;
b) mappedBy标签一定是定义在the owned side(被拥有方的),他指向the owning side(拥有方);
c) mappedBy的含义,应该理解为,拥有方能够自动维护 跟被拥有方的关系;

 

   当然,如果从被拥有方,通过手工强行来维护拥有方的关系也是可以做到的。
d) mappedBy跟JoinColumn/JoinTable总是处于互斥的一方,可以理解为正是由于拥有方的关联被拥有方的字段存在,拥有方才拥有了被 拥有方。mappedBy这方定义的JoinColumn/JoinTable总是失效的,不会建立对应的字段或者表
分享到:
评论

相关推荐

    mappedBy属性:one2many

    `mappedBy`属性是Hibernate中用于定义关联关系的一个关键元素,尤其是在处理双向关联的一对多关系时。通常,一对多关系意味着一个实体(例如"部门")可以有多个关联的实体(例如"员工")。在这个场景中,部门是一方...

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

    本篇文章将详细探讨在Hibernate中如何使用注解来处理各种关联关系,特别是`mappedBy`属性的用法。 首先,`@OneToMany`注解用于表示一对多的关联关系,比如一个班级可以有多个学生。在单向关联中,我们通常在拥有...

    hibernate

    这里,`School`实体中定义了`addresses`集合,并通过`mappedBy`指定了关联的另一方是`Address`实体中的`schools`集合。这意味着`Address`实体将负责维护这个关联关系。 ### 关于Cascade的示例 当我们想要在保存`...

    hibernate一对多项目

    该注解接受一个`mappedBy`参数,指定多的一方在关联表中的外键字段。 - 在多的一方(例如Order实体),需要定义一个`@ManyToOne`注解,对应到一的一方(User实体)。如果在User实体中已经设置了`@OneToMany`,则...

    hibernate bag 集合映射

    `mappedBy`指定了关联的反向属性,`CascadeType.ALL`表示级联操作。 3. **Java实体类**:包含bag属性的实体类将定义相关的方法,如getter和setter。 4. **操作示例**:如何在Java代码中添加、删除和查询bag集合中...

    HibernateDemo(hibernate基本用法演示)

    9. **延迟加载(Lazy Loading)**:通过 `@OneToMany(mappedBy = "..." fetch = FetchType.LAZY)` 可以实现懒加载,只有在真正需要时才会加载关联的对象,避免了数据冗余。 10. **事件监听**:可以注册事件监听器,...

    hibernate多对多关联映射

    `mappedBy`属性则指定反向关联的字段,表明`Course`实体中的`students`列表是主关联方。 三、多对多关联的增删改查 1. 插入关联 在添加关联时,可以通过直接添加对象到对方的集合属性来完成。例如,为一个学生添加...

    Hibernate5实例程序

    通过`@LazyCollection(LazyCollectionOption.EXTRA)`或`@OneToMany(mappedBy = "property", fetch = FetchType.LAZY)`等注解实现懒加载,以提高程序性能,只在真正需要时加载关联数据。 12. **事件监听(Event ...

    hibernate关联映射实例

    这个注解通常放在拥有众多子项的一方,配置`mappedBy`属性来指定子项在父项中的引用字段。同时,子项类需要定义`@ManyToOne`注解,指向父项。这种映射可以通过集合类型如List、Set等来表示子项的集合。 2. **多对多...

    hibernate 关系注解

    双向一对一关系需要在两个实体类中都使用`@OneToOne`,一方使用`mappedBy`属性引用另一方的属性。例如: ```java // 在User类中 @OneToOne(mappedBy="user") private Profile profile; // 在Profile类中 @...

    hibernate的表关联操作-hibernate02

    @OneToOne(mappedBy = "person") private Address address; } @Entity public class Address { @OneToOne @JoinColumn(name = "person_id") private Person person; } ``` 2. **一对多关联**:如果一个实体类...

    hibernate set 集合映射

    4. **集合属性映射**:在实体类中,集合属性需要使用`@OneToMany`或`@ManyToMany`注解进行声明,并通过`mappedBy`指定反向关联的属性。 ```java @Entity public class User { @OneToMany(mappedBy = "user") ...

    hibernate系列(一)hibernate入门

    @OneToMany(mappedBy = "user") private List<Order> orders; // ... } ``` 以上就是Hibernate入门的基本知识,通过这些,你可以开始构建自己的ORM模型,并进行数据库操作。随着深入学习,你会发现Hibernate提供...

    学习hibernate第二天

    2. **配置另一方实体**:在另一方实体的类中,同样定义一个双向关联的属性,这次不需要`mappedBy`,而是使用`@OneToOne`注解的`cascade`属性来控制级联操作。 ```java @Entity public class UserProfile { @Id @...

    Hibernate权限管理例子

    首先,我们要理解Hibernate的核心概念——对象关系映射(ORM)。ORM允许我们用面向对象的方式来处理数据库,使得业务逻辑和数据存储之间的交互更为简洁。Hibernate通过注解可以方便地定义实体类(Entity),这些实体...

    hibernate 全面中文帮助 CHM文档

    2. **懒加载和立即加载**:通过@LazyCollection(LazyCollectionOption.EXTRA)或@OneToMany(mappedBy="...")实现懒加载,避免不必要的数据加载。 3. **分页查询**:使用Query的setFirstResult()和setMaxResults()方法...

    hibernate框架一对一测试案例

    在这个例子中,`@OneToOne`注解用于声明一对一关系,`mappedBy`属性指明了对方实体的属性名,`cascade`属性用于指定级联操作。 ### 3. 测试案例 在`hibernate-one-dui-one-01`这个压缩包文件中,应该包含了一个...

    hibernate对象三状态及OneToOne&OneToMany&ManyToMany

    以上就是关于Hibernate对象三状态以及OneToOne、OneToMany和ManyToMany关系映射的详细讲解,希望对你理解Hibernate的工作原理和实践有所帮助。在实际开发中,根据业务需求灵活运用这些关系映射,能够有效地管理和...

Global site tag (gtag.js) - Google Analytics