JPA,在@OneToMany里加入mappedBy属性
2010-04-16 12:44
405 查看
凡是双向必设mappedBy
JPA,在 @OneToMany里加入mappedBy属性避免生成中间表
使用JPA的时候,如果A B两个实体间是一对多,多对一的关系,如果不在@OneToMany里加入mappedBy属性(相当于inverse=”true”)会导致自动生成一个多余的中间表。比如:
@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表。
又如:
In Customer class
@OneToMany(cascade=ALL, mappedBy="customer")
public Set getOrders() {
return orders;
}
In Order class
@ManyToOne
@JoinColumn(name="CUST_ID", nullable=false)
public Customer getCustomer() {
return customer;
}
mappedBy="customer"
说明在两个关联的实体Bean中,orders这一端是关系的拥有者,Orders一方的表中生成到关联类的外键
且mappedBy只有在双向关联时,才会使用这个属性
cascade=ALL
说明,当Orders做CRUD操作时,Customer都会进行相应操作
onetoone 双向@OneToOne(mappedBy="wife")
@JoinColumn(name="hId")有用吗 变成不是双向了
——————虽然数据库表是一样的,但是在java里面实现起来是不一样的 一个是单向的 一个是双向的 设了 @OneToOne(mappedBy="wife")
JPA,在 @OneToMany里加入mappedBy属性避免生成中间表
使用JPA的时候,如果A B两个实体间是一对多,多对一的关系,如果不在@OneToMany里加入mappedBy属性(相当于inverse=”true”)会导致自动生成一个多余的中间表。比如:
@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表。
又如:
In Customer class
@OneToMany(cascade=ALL, mappedBy="customer")
public Set getOrders() {
return orders;
}
In Order class
@ManyToOne
@JoinColumn(name="CUST_ID", nullable=false)
public Customer getCustomer() {
return customer;
}
mappedBy="customer"
说明在两个关联的实体Bean中,orders这一端是关系的拥有者,Orders一方的表中生成到关联类的外键
且mappedBy只有在双向关联时,才会使用这个属性
cascade=ALL
说明,当Orders做CRUD操作时,Customer都会进行相应操作
onetoone 双向@OneToOne(mappedBy="wife")
@JoinColumn(name="hId")有用吗 变成不是双向了
——————虽然数据库表是一样的,但是在java里面实现起来是不一样的 一个是单向的 一个是双向的 设了 @OneToOne(mappedBy="wife")
相关文章推荐
- JPA在@OneToMany里加入mappedBy属性避免生成中间表
- JPA,在@OneToMany里加入mappedBy属性
- JPA,在@OneToMany里加入mappedBy属性
- JPA OneToOne,OneToMany和ManyToMany的mappedBy属性
- Java - @OneToMany注解的mappedBy属性有什么作用?
- JPA OneToOne,OneToMany和ManyToMany的mappedBy属性
- JPA 关系映射(OneToOne、OneToMany、ManyToMany)
- hibernate set节点和many-to-one具有的属性
- hibernate映射文件many-to-one元素属性
- JPA关系映射系列三:one-to-many和many-to-one
- jpa onetomany 使用级连表 删除被维护表数据时的坑
- 【FAQ Fix】 JPA Double insert with @OneToMany and CASCADE.ALL
- Hibernate使用property-ref属性解决遗留数据库One To Many关系的问题。
- hibernate many-to-one 一些属性说明(outer-join)
- JPA实现一对多(OneToMany)关联
- many-to-one各属性含义
- Spring Data Jpa(Hibernate) OneToMany
- JPA 的 @OneToMany 注解
- Hibernate中使用JPA注解@OneToMany的cascade级联标签
- 020 <one-to-one>、<many-to-one>单端关联上的lazy(懒加载)属性