Hibernate常用注释收集4

多对一

使用 @ManyToOne 注解定义多对一关系。

@Entity()
public class Flight implements Serializable {
@ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
@JoinColumn(name=”COMP_ID”)
public Company getCompany() {
return company;
}

}

其中@JoinColumn 注解是可选的,关键字段默认值和一对一关联的情况相似。列名为:主
题的关联属性名 + 下划线 + 被关联端的主键列名。本例中为company_id,因为关联的属性
是company, Company的主键为 id.

@ManyToOne 注解有个targetEntity属性,该参数定义了目标实体名。通常不需要定义,大
部分情况为默认值。但下面这种情况则需要 targetEntity 定义(使用接口作为返回值,而不
是常用的实体)。

@Entity()
public class Flight implements Serializable {
@ManyToOne(cascade= {CascadeType.PERSIST,CascadeType.MERGE},targetEntity=
CompanyImpl.class)
@JoinColumn(name=”COMP_ID”)
public Company getCompany() {
return company;
}

}

public interface Company {

多对一也可以通过关联表的方式来映射,通过 @JoinTable 注解可定义关联表。该关联表包
含指回实体的外键(通过@JoinTable.joinColumns)以及指向目标实体表的外键(通过
@JoinTable.inverseJoinColumns).

@Entity()
public class Flight implements Serializable {

@ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
@JoinTable(name=”Flight_Company”,
joinColumns = @JoinColumn(name=”FLIGHT_ID”),
inverseJoinColumns = @JoinColumn(name=”COMP_ID”)
)
public Company getCompany() {
return company;
}

}

集合类型

一对多

@OneToMany 注解可定义一对多关联。一对多关联可以是双向的。

双向

规范中多对一端几乎总是双向关联中的主体(owner)端,而一对多的关联注解为
@OneToMany(mappedBy=)

@Entity
public class Troop {
@OneToMany(mappedBy=”troop”)
public Set getSoldiers() {

}

@Entity
public class Soldier {
@ManyToOne
@JoinColumn(name=”troop_fk”)
public Troop getTroop() {

}

Troop 通过troop属性和Soldier建立了一对多的双向关联。在 mappedBy 端不必也不能定
义任何物理映射。

单向

@Entity
public class Customer implements Serializable {
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@JoinColumn(name=”CUST_ID”)
public Set getTickets() {

}

@Entity
public class Ticket implements Serializable {
… //no bidir
}

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 嗅谱网
转载请注明:转自《Hibernate常用注释收集4
本文地址:http://www.xiupu.net/archives-275.html
关注公众号:嗅谱网

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!