从另一个表映射Hibernate值仅用于表示
我无法通过搜索找到确切的场景 我有一个场景,其中我有两个实体 第一个存储一些基本信息: 表:表A ID,AccountId,FirstName,LastName 现在,我将帐户ID存储在表中,但我只想获取帐户名从另一个表映射Hibernate值仅用于表示,hibernate,Hibernate,我无法通过搜索找到确切的场景 我有一个场景,其中我有两个实体 第一个存储一些基本信息: 表:表A ID,AccountId,FirstName,LastName 现在,我将帐户ID存储在表中,但我只想获取帐户名 无需在此第一个类中添加帐户实体。。。hibernate是否能够从Account表中查找一个值,并将其存储在(例如)表类中的String accountName字段中?这将仅用于显示一列。。。或者是将实体添加到此类并加载它的理想方法?您可以在表示表的实体中创建与Account表的关联,并通
无需在此第一个类中添加帐户实体。。。hibernate是否能够从Account表中查找一个值,并将其存储在(例如)表类中的String accountName字段中?这将仅用于显示一列。。。或者是将实体添加到此类并加载它的理想方法?您可以在表示表的实体中创建与Account表的关联,并通过如下查询获取帐户名称:
SELECT a.account.name FROM TableA a WHERE...
这将只获取帐户名,而不是整个帐户行。您可以有如下内容:
private String accountName;
@Formula("(select acc.account_name from tb_account acc where acc.id = account_id)")
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
在主实体中,现在不需要映射关联,Hibernate每次获取主实体的实例时都会获取account\u name
顺便说一句,Hibernate在select子句中使用嵌套查询来获取
accountName
,因此在accountName
上进行筛选和排序不会很好,有什么好的理由不使用简单的关联吗?我强烈建议您创建Account
实体,即使是一个非常简单的帐户ID和帐户名
然而,如果你坚持不这样做,你可以采取一些替代方案