Java Hibernate@JoinFormula,但如何返回多个结果(一个集合)?
以下代码段不起作用:Java Hibernate@JoinFormula,但如何返回多个结果(一个集合)?,java,sql,hibernate,jpa,Java,Sql,Hibernate,Jpa,以下代码段不起作用: @Id private Long id; @ManyToMany(fetch = FetchType.LAZY) @JoinFormula(""" (SELECT DISTINCT ON (product11.id, text26.language, textsourced28.source) text26.id FROM product AS product11
@Id
private Long id;
@ManyToMany(fetch = FetchType.LAZY)
@JoinFormula("""
(SELECT DISTINCT ON (product11.id, text26.language, textsourced28.source) text26.id
FROM product AS product11
JOIN producttexttitle AS producttexttitle27 ON product11.id = producttexttitle27.product
JOIN text AS text26 ON producttexttitle27.text = text26.id
JOIN textsourced AS textsourced28 ON text26.id = textsourced28.text
WHERE product11.id=id
ORDER BY product11.id, text26.language, textsourced28.source, textsourced28.time DESC)
""")
private List<Text> titles;
唯一的问题是后者只返回一个实例,我在其中查找几个实例
我能弄明白
@CollectionTable
或@ElementCollection
使用方法
我需要提供一个自定义sql。如果不了解实体之间的关系,很难提出建议。你能用一个简单的例子来解释你的问题吗?@SternK我的意思是,我最感兴趣的是得到一个文本列表,而不仅仅是一个文本。这是问题的核心,但我会让你高兴的。通常,连接公式用于获取某物的最后一个实体,在本例中是与Id关联的文本。对我来说,我希望获取每种语言的最后一个文本。这意味着使用该查询,我通常会得到每种语言的最后文本。真的是这样。一个产品通常有一个标题,这个标题可能会改变。所以我们需要得到最后一个。只有我们在每种语言中这样做。如果不理解你的实体之间的关系,就很难提出建议。你能用一个简单的例子来解释你的问题吗?@SternK我的意思是,我最感兴趣的是得到一个文本列表,而不仅仅是一个文本。这是问题的核心,但我会让你高兴的。通常,连接公式用于获取某物的最后一个实体,在本例中是与Id关联的文本。对我来说,我希望获取每种语言的最后一个文本。这意味着使用该查询,我通常会得到每种语言的最后文本。真的是这样。一个产品通常有一个标题,这个标题可能会改变。所以我们需要得到最后一个。只有我们在每种语言中这样做。
@Id
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinFormula("""
(SELECT DISTINCT ON (product11.id, text26.language, textsourced28.source) text26.id
FROM product AS product11
JOIN producttexttitle AS producttexttitle27 ON product11.id = producttexttitle27.product
JOIN text AS text26 ON producttexttitle27.text = text26.id
JOIN textsourced AS textsourced28 ON text26.id = textsourced28.text
WHERE product11.id=id
ORDER BY product11.id, text26.language, textsourced28.source, textsourced28.time DESC
LIMIT 1)
""")
private Text titles;