`
Josh_Persistence
  • 浏览: 1651357 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

Hibernate OneToMany中的mappedBy

阅读更多

mappedBy用于指定在双向关系中的两个关联实体中哪个实体是被关联处理的.

 

1、@OneToMany(mapped=“由One的一方指向Many的一方,并且,这个属性应该等于Many的一方中含有One类的属性的属性名,否则会出错啦 ”)

如:一个Class中有多个Students。

 

1)在Class PO中:
@OneToMany(targetEntity=StudentPO.class,mappedBy="myclass",cascade=javax.persistence.CascadeType.ALL)

 

@Cascade(CascadeType.ALL)

 

private Set<StudentPO> studentSet;

 

 

 

2)在StudentPO中:

 

@ManyToOne(targetEntity=ClassPO.class,cascade={CascadeType.ALL})

 

private ClassPO myclass;

 

 

其中ClassPO中的mappedBy=  StudentPOst中的  myclass;
2、@OneToMany里面加入mappedBy 防止生成中间表

使用JPA的时候,如果A B两个实体间是一对多,多对一的关系,如果不在@OneToMany里加入mappedBy属性会导致自动生成一个多余的中间表。比如:

@Entity
public class A {
    @OneToMany(mappedBy="a")
    public Set<B> bs = new HashSet<B>(0);
}
 
@Entity
public class B {
    @ManyToOne
    public A a;
}

这样写会只成生成表A和表B,B中会有一个到表A的外键。但是如果不加mappedBy=”a”, 那么就会再生成一张A_B表。

 

 

在本例中,如果我们没有填mapped这个属性,则会产生三张表,一张表是用来管理这两张表的,如主键中mappedBy的具体使用及其含义

 

 
0
0
分享到:
评论

相关推荐

    HIBERNATE 一对多 onetomany

    在`@OneToMany`注解中,`mappedBy`属性指定了子实体中的反向引用属性,`cascade`属性用于指定级联操作,`orphanRemoval`为是否删除未被任何父实体引用的子实体。 2. **子实体类**:子实体类(例如`Course`)中需要...

    hibernate一对多关联映射(单向关联)

    // 关联注解,指定关联的子实体是Order,mappedBy表示关联字段在Order类中不存在 @OneToMany(mappedBy = "user") private List&lt;Order&gt; orders; // getter和setter方法... } ``` 至此,我们在User类中完成了对...

    Hibernate- oneToMany using annotation

    `mappedBy`属性指定了关联字段在`Post`实体中,`cascade`属性设为`ALL`意味着在保存、更新或删除`User`时,也会相应地操作`Post`,`orphanRemoval`设为`true`则表示删除用户时,其相关的帖子也会被删除。 在实际...

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

    @OneToMany(mappedBy = "user") private List&lt;Order&gt; orders; } @Entity public class Order { @Id private Long id; @ManyToOne @JoinColumn(name = "user_id") private User user; } ``` 在Order实体中...

    mappedBy属性:one2many

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

    HIbernate-OneToMany:HIbernate-OneToMany Annotations 在实体之间具有 PKFK 关系

    总结来说,`@OneToMany`注解在Java Hibernate中用于建立一对多的关联关系,通过设置`mappedBy`、`cascade`和`orphanRemoval`等参数,可以方便地管理这种关系,实现对象与数据库的同步。同时,理解并熟练掌握这种关系...

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

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

    hibernate 全面中文帮助 CHM文档

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

    hibernate实体系注解

    @OneToMany(mappedBy = "parent", fetch = FetchType.LAZY) private List&lt;Child&gt; children; ``` **五、总结** 使用Hibernate的注解方式,我们可以更直观地在Java代码中定义实体类和它们之间的关系,减少了XML配置...

    hibernate 中的 set map list 代码

    @OneToMany(mappedBy = "user") private Set&lt;Phone&gt; phones; } ``` Phone类中需要有一个反向引用的外键字段,如`user`,这通常通过`@ManyToOne`注解来完成。这样,Hibernate就能理解User与Phone之间的关联,并在...

    hibernate4.3.8的annotation及xml的一对多的双向案例

    例如,对于用户和订单的场景,用户类中会有`@OneToMany(mappedBy = "user")`的订单集合,而订单类中会有`@ManyToOne`指向用户的属性。 XML配置方面,我们需要在`hibernate.cfg.xml`文件中配置数据源、JDBC驱动等...

    hibernate set 集合映射

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

    Hibernate(一对多表操作)

    @OneToMany(mappedBy = "user", cascade = CascadeType.ALL) private Set&lt;Order&gt; orders; ``` 这里`CascadeType.ALL`表示在保存或删除用户时,也会相应地保存或删除所有关联的订单。 ### 6. 性能优化 在一对多...

    Hibernate注释

    - **示例**:假设有一个班级类(`Class`)和一个学生类(`Student`),其中`Student`类中定义了`@ManyToOne`类型的`class`字段,则`Class`类中可以使用`@OneToMany(mappedBy = "class")`来定义一对多关系。...

    (4)Hibernate中的many-to-one和one-to-many关系

    在双向关联中,一方(通常是one-to-many的一方)需要通过`@OneToMany(mappedBy="")`来指定关联的另一方的属性,而另一方(many-to-one)则无需指定`mappedBy`,直接使用`@ManyToOne`即可。 4. 外键的处理 在one-to-...

    Hibernate-OneToMany-Advance-udemy

    @OneToMany(mappedBy = "department", cascade = CascadeType.ALL) private Set&lt;Employee&gt; employees; } @Entity public class Employee { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "DEPARTMENT...

    hibernate_annotations API中文

    @OneToMany(mappedBy = "user", cascade = CascadeType.ALL) private List&lt;Order&gt; orders; ``` 以上仅为Hibernate Annotations API的一小部分,实际使用中还有更多高级特性,如二级缓存、事件监听、时间戳等。理解并...

    Hibernate one to many(many to one) 配置

    - `mappedBy`属性:在One-to-Many关系中,通常在“多”的一方使用`mappedBy`属性,表明关联关系由另一方维护,即Many-to-One的一方拥有外键。 - `cascade`属性:可以设置级联操作,如`CascadeType.SAVE_UPDATE`...

    hibernate bag 集合映射

    @OneToMany(mappedBy = "parentProperty") @org.hibernate.annotations.Cascade({org.hibernate.annotations.CascadeType.ALL}) private List&lt;YourEntity&gt; yourEntities; ``` `mappedBy`指定了关联的反向属性,...

    hibernate 一对多,两个实例项目

    2. 在"多"端,需要定义一个引用"一"端的字段,并添加`@ManyToOne`注解,同时`mappedBy`属性应与"一"端的`@OneToMany`注解中的`mappedBy`值相同。 ```java @Entity public class Course { @ManyToOne @JoinColumn...

Global site tag (gtag.js) - Google Analytics