Java 映射没有实体的集合

Java 映射没有实体的集合,java,hibernate,jpa,orm,Java,Hibernate,Jpa,Orm,在hibernate中,是否可以从实体a中的实体B映射一个值/列的集合,而无需实体B本身 因此,假设表B包含许多字段/列,包括这个长字段,让我们称之为building_id。这是我唯一关心的 在一个房间里,我就可以 List<Long> buildings; 列出建筑物; 而不是 @oneToMany List<B> buildings; @oneToMany 列出建筑物; 其中A有一个主键列对应于B中的外键,其中对于给定A有多个B(一个域)。因此,我们得到

在hibernate中,是否可以从实体a中的实体B映射一个值/列的集合,而无需实体B本身

因此,假设表B包含许多字段/列,包括这个长字段,让我们称之为building_id。这是我唯一关心的

在一个房间里,我就可以

List<Long> buildings; 
列出建筑物;
而不是

 @oneToMany
 List<B> buildings;
@oneToMany
列出建筑物;

其中A有一个主键列对应于B中的外键,其中对于给定A有多个B(一个域)。因此,我们得到了a中的建筑ID列表。

我不这么认为。Hibernate如何知道Long对应于表B中的building_id?可能是通过使用一些注释来指定表和列,还可能是一个连接?我的意思是,我不介意创建实体B,但我不需要与它关联的所有列,甚至不需要对象占用的开销和额外空间(当我只需要long时)。您可以创建一个实体B,只需要B的主键和building_id字段映射——不管表B还有多少其他列,并列出建筑物,但这不是“没有实体”,因此您建议至少需要映射到对象的实体的主键?是的,否则在合并实体时,hibernate如何知道要更新哪一行?如果只进行读取,也许可以不映射主键,但我不知道这是否会导致休眠错误