表:NAME(varchar2),AGE(varchar2),ID_NO(varchar2)
B表:NAME(varchar2),ADDRESS(varchar2)
我得到了这样的实体
@Entity
public calss A {
@Column(name="NAME")
private String name;
@Column(name="AGE")
private String age;
@Column(name="ID_NO")
private String idNo;
@Column(name="ADDRESS")
private String address;
}
当我执行此代码时:
session.createsqlQuery("SELECT * FROM A ").addEntity(A.clss).uniqueResult();
我收到了SQLException意味着地址列不存在。而且我不想将@Transient
放到Address
列,因为我希望我可以使用此实体来使用B表,如下所示:
session.createsqlQuery("SELECT * FROM B ").addEntity(A.clss).uniqueResult();
如何才能成功获得这个结果?
答案 0 :(得分:0)
一个简短的回答:你不能。
如果你想拥有这类东西,你应该创建类层次结构(最少没有@Inheritance以及我希望你自己google的其他东西):
@Entity
public calss A {
@Column(name="NAME")
private String name;
@Column(name="AGE")
private String age;
@Column(name="ID_NO")
private String idNo;
}
@Entity
public class B extends A {
@Column(name="ADDRESS")
private String address;
}
然而,它不会起作用,因为你应该指定@Id列。