【发布时间】:2022-10-01 01:25:28
【问题描述】:
这是我根据我的确切情况提供的示例
我希望将两个数据库表中的数据放入一个列表中,使用 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 表中获取数据或向我解释,请帮助我