这就是我在我的案例之后提供的例子
我希望将两个数据库表中的数据与Union或任何其他Java Hibernate查询放在一个列表中
我尝试了表1的以下实体,这是我的第一个有2列的数据表:
@Entity
@Table(name="TABLE")
public class Table {
@Id
@Column(name="NAME")
private String name;
@Column(name="PHONE")
private String phoneNumber;
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phone) {
this.phoneNumber = phone;
}
}
我的第二个数据库表的这个实体与第一个数据库表具有相同的列。
@Entity
@Table(name="TABLE_2")
public class Table2 {
@Id
@Column(name="NAME")
private String name;
@Column(name="PHONE")
private String phoneNumber;
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phone) {
this.phoneNumber = phone;
}
}
我的疑问是:
select a from Table a union select a from Table2 a;
我的代码,用于获取数据并与新对象一起存储到列表中
public ArrayList<DTO> getUsers(){
ArrayList<DTO> flist = new ArrayList<DTO>();
Query q = null;
String query = null;
query = "select a from Table a UNION select a from Table2 a";
try{
AppEntityManager appEntMgr = AppEntityManager.getAppEntityManager();
appEntMgr.startTransaction();
q = appEntMgr.createQuery(query);
q.setFirstResult(0);
q.setMaxResults(10);
List<Object[]> list = q.getResultList();
DTO dto = null;
for (Object[] folderType: list) {
dto.setName((String)folderType[0]);
dto.setPhoneNumber((String)folderType[1]);
flist.add(dto);
}
}catch (Exception e) {
log.error("Exception ::" + e);
}
return flist;
}
请告诉我是否可以从2个DB表中获取数据,或者给我解释一下
1条答案
按热度按时间dl5txlt91#
如果对每个类使用表继承,这将是最简单的:
然后,您可以使用以下代码: