hibernate使用注解时映射主键属性的细节

直接上代码

@Entity
@Table(name="country")
public class Country {
@Id
@Column(name="country_id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;

private int area;
private Name name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public int getArea() {
return area;
}
public void setArea(int area) {
this.area = area;
}
public Name getName() {
return name;
}
public void setName(Name name) {
this.name = name;
}



}

这是country类,其中的属性Name是另外一个类,代码如下

@Embeddable
public class Name {

@Column(name="first_name")
private String first;
@Column(name="last_name")
private String last;


@Parent
private Country owner;


public Name(){

}
public Name(String first, String last) {

this.first = first;
this.last = last;
}
public String getFirst() {
return first;
}
public void setFirst(String first) {
this.first = first;
}
public String getLast() {
return last;
}
public void setLast(String last) {
this.last = last;
}
public Country getOwner() {
return owner;
}
public void setOwner(Country owner) {
this.owner = owner;
}


}


上面的代码相信大家都知道是什么意思,Name的两个属性分别映射一个数据列,其实就是把Name嵌入到Country里边去,但是里面有个细节

@Parent
private Country owner;

这里的owner是约定的名称,不能改成其他的比如owners之类。

另外

public Name(){

}

public Name(String first, String last) {

this.first = first;
this.last = last;
}

缺一不可,否则会报错。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值