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

来源:互联网 发布:c 数组中括号位置 编辑:程序博客网 时间:2024/05/16 01:52

直接上代码

@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;
}

缺一不可,否则会报错。



0 0
原创粉丝点击