Hibernate 将同一实体作为集合映射到自身

Hibernate 将同一实体作为集合映射到自身,hibernate,collections,Hibernate,Collections,好的,假设我有一个“个人”实体,它需要“个人”作为属性(比如,朋友) 由于这是一个多对多连接,如果我使用SQL创建这个模式(我不是,我是使用hbm.ddl.auto来为我创建的),我可能会创建另一个包含2列和2个ID的表(每个朋友1个) 但是,我不确定如何在hibernate中对此进行注释,我做了以下操作: class PersonEntity { . . @ElementCollection private List<PersonEntity> friends ; . . }

好的,假设我有一个“个人”实体,它需要“个人”作为属性(比如,朋友) 由于这是一个多对多连接,如果我使用SQL创建这个模式(我不是,我是使用hbm.ddl.auto来为我创建的),我可能会创建另一个包含2列和2个ID的表(每个朋友1个) 但是,我不确定如何在hibernate中对此进行注释,我做了以下操作:

class PersonEntity {

.
.

@ElementCollection
private List<PersonEntity> friends ;

.
.
}
类人格{
.
.
@元素集合
私人名单朋友;
.
.
}
问题是,我不确定这是不是最好的办法。。例如,我“认为”每当我向列表中添加一个朋友并将其持久化时,它将作为表中的下一行插入,并且由于我似乎无法索引此字段,因此我想象数据检索将是低效的。
你能提出更好的方法来解决这个问题吗?

你正在寻找
@manytomy
@JoinTable

说:

定义基本类型或可嵌入类的实例集合

您有一个实体实例的集合。有关如何使用这些注释的信息,请参见