我有一个没有关联实体的表。我需要编写JPQL查询,该查询将根据该表的字段进行过滤。可能吗? 我知道我可以做以下其中一项:
还有其他方法吗?
答案 0 :(得分:0)
不幸的是,你不能用JPQL做到这一点。
您应该使用SQL。 但是本机查询也可以返回实体。如果返回的值与实体匹配或使用@SqlResultSetMapping,如下所述: http://javaee.support/sample/jpa-native-sql-resultset-mapping/
如果您只需要加入未映射的关系上的实体,JPA 2.1就可以在任何表列上加入。
答案 1 :(得分:0)
问题在于我不需要真正的多对多对象映射,而只需要我唯一实体中的id集合。所以我开始关注解决方案:
@ElementCollection
@CollectionTable(
name="user_to_feed",
joinColumns = @JoinColumn(name = "feed_id",referencedColumnName = "id")
)
@Column(name="user_id")
private List<Integer> userIds = new ArrayList<>();
这允许我进行以下查询:
select f.url from Feed f join f.userIds u where :id in u