使用hibernate的时候经常会用到关联查询,尤其是类似部门这种表,在其他表中存储的是depid,但是用户却要显示depname,以前经常select * from student,dep 这种关联sql,然后Object[] obs = list.get(i) 然后报objects转换为bean,很麻烦,hibernate又关联,但是一旦形成一对多,dep整张表还会显示student的数据,很不好,因此可以采用单向多对一这种模式,下面就是jb 对应Jbfldm1这张表,查出来的wellsource里边jb{jsbflm.jbdm1,dbfldm1.jb},只是记住它的注解不是普通的了,而是 @JoinColumn(name = "JB")
@ManyToOne
// @Column(name = "JB", length = 20)
@JoinColumn(name = "JB")
public Jbfldm1 getJbfldm1() {
return jbfldm1;
}
@Entity
@Table(name = "WELL_SOURCE2")
public class WellSource2 implements java.io.Serializable {
private String wellId;
private String jm;
private Jbfldm1 jbfldm1;
private Date tcrq;
private String orgId;
private String jx;
private Double x;
private Double y;
private String xlj;
/** default constructor */
public WellSource2() {
}
// Property accessors
@Id
@Column(name = "WELL_ID", unique = true, nullable = false, length = 10)
public String getWellId() {
return this.wellId;
}
public void setWellId(String wellId) {
this.wellId = wellId;
}
@Column(name = "JM", nullable = false, length = 60)
public String getJm() {
return this.jm;
}
public void setJm(String jm) {
this.jm = jm;
}
@ManyToOne
// @Column(name = "JB", length = 20)
@JoinColumn(name = "JB")
public Jbfldm1 getJbfldm1() {
return jbfldm1;
}
public void setJbfldm1(Jbfldm1 jbfldm1) {
this.jbfldm1 = jbfldm1;
}
@Temporal(TemporalType.DATE)
@Column(name = "TCRQ", length = 7)
public Date getTcrq() {
return this.tcrq;
}
public void setTcrq(Date tcrq) {
this.tcrq = tcrq;
}
@Column(name = "ORG_ID", nullable = false, length = 10)
public String getOrgId() {
return this.orgId;
}
public void setOrgId(String orgId) {
this.orgId = orgId;
}
@Column(name = "JX", length = 20)
public String getJx() {
return this.jx;
}
public void setJx(String jx) {
this.jx = jx;
}
@Column(name = "X", precision = 12, scale = 5)
public Double getX() {
return this.x;
}
public void setX(Double x) {
this.x = x;
}
@Column(name = "Y", precision = 12, scale = 5)
public Double getY() {
return this.y;
}
public void setY(Double y) {
this.y = y;
}
@Column(name = "XLJ", length = 6)
public String getXlj() {
return this.xlj;
}
public void setXlj(String xlj) {
this.xlj = xlj;
}
}
@Entity
@Table(name = "JBFLDM_1")
public class Jbfldm1 implements java.io.Serializable {
// Fields
private String jbdm;
private String jb;
// Constructors
/** default constructor */
public Jbfldm1() {
}
/** full constructor */
public Jbfldm1(String jbdm, String jb) {
this.jbdm = jbdm;
this.jb = jb;
}
// Property accessors
@Id
@Column(name = "JBDM", unique = true, nullable = false, length = 10)
public String getJbdm() {
return this.jbdm;
}
public void setJbdm(String jbdm) {
this.jbdm = jbdm;
}
@Column(name = "JB", nullable = false, length = 20)
public String getJb() {
return this.jb;
}
public void setJb(String jb) {
this.jb = jb;
}
}
表结构
WELL_ID VARCHAR2(10) not null,
JM VARCHAR2(60) not null,
JB VARCHAR2(20),
TCRQ DATE,
ORG_ID VARCHAR2(10) not null,
JX VARCHAR2(20),
X NUMBER(12,5),
Y NUMBER(12,5),
XLJ VARCHAR2(6)