我有几个实体,其中一个实体的Set参数包含这样的参数,该参数包含来自多对多连接的其他实体,如下所示(为简单起见,我仅使用其中两个)。如何使用搜索条件过滤ID为== 1的头像的用户?
@Entity
public class User
{
@Id
private String loginId;
private String screenName;
@ManyToMany(mappedBy = "user")
private Set<Avatar> avatars;
}
@Entity
public class Avatar
{
@Id
private Integer id;
@ManyToMany
@JoinTable(
name = "user",
joinColumns = @JoinColumn(name = "id"),
inverseJoinColumns = @JoinColumn(name = "loginId"))
private User user;
private String url;
}
您可以使用本机查询来获取所需的内容。语法如下所示:
@Query(
value = "select * from ...",
nativeQuery = true
)
也许您可以在不影响业务逻辑的情况下从数据库重构表。我不知道您有什么要求,但我认为您可以使用@ManyToOne。