ATable.java
@ManyToOne(fetch = FetchType.LAZY,targetEntity=BTableEntity.class)
@JoinTable(name= "a_ref_b", joinColumns = {@JoinColumn(name = "a_id", nullable = false, updatable = false) },inverseJoinColumns = { @JoinColumn(name = "b_id",referencedColumnName="id", nullable =false, updatable = false) })
public BTableEntity getBTableEntity() {
return bTable;
}
BTable.java
@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE },
fetch = FetchType.LAZY,targetEntity=ATableEntity.class)
@JoinTable(name= "a_ref_b", joinColumns = {@JoinColumn(name = "b_id", nullable = false, updatable = false) },inverseJoinColumns = { @JoinColumn(name = "a_id", nullable =false, updatable = false) })
public List<ATableEntity> getATableEntitys() {
return ATableEntitys;
}
但是在查询的ATable的时候,总是无法查询出BTable的值,打印出的sql语句只关联到a_ref_b
并没有关联到BTable。请问应该怎么写?
完整Entity代码:
@Entity
@Table(name = "b_table", schema = "")
@SuppressWarnings("serial")
public class BTableEntity implements java.io.Serializable {
private String id;
private String countty;
private String province;
private String city;
private List<ATableEntity> ATableEntitys;
@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
@Column(name ="ID",nullable=false,length=36)
public String getId(){
return this.id;
}
public void setId(String id){
this.id = id;
}
@Column(name ="COUNTTY",nullable=true,length=32)
public String getCountty(){
return this.countty;
}
public void setCountty(String countty){
this.countty = countty;
}
@Column(name ="PROVINCE",nullable=true,length=32)
public String getProvince(){
return this.province;
}
public void setProvince(String province){
this.province = province;
}
@Column(name ="CITY",nullable=true,length=32)
public String getCity(){
return this.city;
}
public void setCity(String city){
this.city = city;
}
@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE },
fetch = FetchType.LAZY,targetEntity=ATableEntity.class)
@JoinTable(name= "a_ref_b", joinColumns = {@JoinColumn(name = "b_id", nullable = false, updatable = false) },inverseJoinColumns = { @JoinColumn(name = "a_id", nullable =false, updatable = false) })
public List<ATableEntity> getATableEntitys() {
return ATableEntitys;
}
public void setATableEntitys(List<ATableEntity> aTableEntitys) {
ATableEntitys = aTableEntitys;
}
}
@Entity
@Table(name = "a_table", schema = "")
@SuppressWarnings("serial")
public class ATableEntity implements java.io.Serializable {
private String id;
private String name;
private String sex;
private String hobby;
private BTableEntity bTable=new BTableEntity();
@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
@Column(name ="ID",nullable=false,length=36)
public String getId(){
return this.id;
}
public void setId(String id){
this.id = id;
}
@Column(name ="NAME",nullable=true,length=32)
public String getName(){
return this.name;
}
public void setName(String name){
this.name = name;
}
@Column(name ="SEX",nullable=true,length=32)
public String getSex(){
return this.sex;
}
public void setSex(String sex){
this.sex = sex;
}
@Column(name ="HOBBY",nullable=true,length=32)
public String getHobby(){
return this.hobby;
}
public void setHobby(String hobby){
this.hobby = hobby;
}
@ManyToOne(fetch = FetchType.LAZY,targetEntity=BTableEntity.class)
@JoinTable(name= "a_ref_b", joinColumns = {@JoinColumn(name = "a_id", nullable = false, updatable = false) },inverseJoinColumns = { @JoinColumn(name = "b_id",referencedColumnName="id", nullable =false, updatable = false) })
public BTableEntity getBTableEntity() {
return bTable;
}
public void setBTableEntity(BTableEntity bTableEntity) {
bTable = bTableEntity;
}
}
弄出来了。但是我想请问一下,我想查出ATable所有的数据,如果ATable与BTable有关联,则带上BTable的值。请问要怎么写注解?