我的模型中有一些ManyToMany
关系。当我从域中检索所有实体时,是否有一种方法,通过配置,一次检索相关实体?我将在下面举一个例子。
Aliment
可能包含多个Nutrient
,而许多Nutrient
中可能包含Aliment
。这转换为3个表:aliments
,nutrients
和aliments_nutrients
。相应的映射将是:
@Entity
public class Aliment {
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "aliments_nutrients",
joinColumns = { @JoinColumn(name = "aliment_id", nullable = false) },
inverseJoinColumns = { @JoinColumn(name = "nutrient_id", nullable = false) })
@Fetch(FetchMode.SUBSELECT)
private Set<Nutrient> nutrients = new HashSet<>();
}
当我选择所有Aliment
时,我最终选择了Nutrient
的N子选项。在这种情况下,我宁愿让Hibernate发出三个请求(* FROM aliments
,* FROM aliments_nutrients
和* FROM nutrients
),并从这些请求构建映射。谢谢你的指示。