Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate@JoinFormula,但如何返回多个结果(一个集合)?_Java_Sql_Hibernate_Jpa - Fatal编程技术网

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;