gpt4 book ai didi

java - 如何正确实现获取对象列表的 Hibernate NamedQuery?

转载 作者:行者123 更新时间:2023-12-02 04:57:52 25 4
gpt4 key购买 nike

我是 Hibernate 的新手,我遇到以下情况,我不知道如何处理。

所以我有这两个实体类:

  1. KMCountryArea 在我的数据库上映射 KM_COUNTRY_AREA 表:

    @NamedQueries({
    @NamedQuery(name = "kmCountryByName", query = "SELECT country FROM KMCountryArea country WHERE country.nomeFolder = :nomeFolder order by country.idCountryArea")
    })

    @Entity
    @Table(name = "KM_COUNTRY_AREA")
    public class KMCountryArea implements Serializable {

    @Id
    @GeneratedValue
    private Long idCountryArea;

    @Column(name = "nomeFolder")
    private String nomeFolder;

    @OneToOne
    private KMCountry country;

    // GETTER & SETTER METHODS
    }
  2. KMCountry 在我的数据库上映射 KM_COUNTRY 表:

    @Entity
    @Table(name = "KM_COUNTRY")
    public class KMCountry implements Serializable {

    @Id
    @GeneratedValue
    private Long idCountry;

    @Column(name = "country")
    private String name;

    @Column(name = "workingHours")
    private String workingHours;

    // GETTER & SETTER METHODS
    }

因此,如您所见,在 KMCountryArea 类中,我有与 KMCountry 实例关联的 KMCountry Country 字段实体类。

为此,我使用了 @OneToOne 注释

@OneToOne
private KMCountry country;

据我了解,在数据库的 KM_COUNTRY_AREA 表中,我将有一个包含 KMCountry id (idCountry) 的字段。这是正确的还是我错过了什么?

如果现在是正确的,我的问题是我需要创建一个命名查询,该查询给出 KMCountryAreanomeFolder 字段的值,将检索所有列表相关的 KMCountry 对象。

我正在尝试做这样的事情(在这个阶段我无法尝试,而且我绝对不确定这是正确的方法):

@NamedQueries({
@NamedQuery(name = "kmCountryByName", query = "SELECT country FROM KMCountryArea country WHERE country.nomeFolder = :nomeFolder order by country.idCountryArea")
})

我的所有推理都是正确的(如何将两个表和命名查询绑定(bind)在一起)还是我遗漏了一些东西?

请问你能帮我完成这个任务吗?

Tnx

最佳答案

你有

"SELECT country FROM KMCountryArea country WHERE country.nomeFolder = :nomeFolder order by country.idCountryArea"

并且您不能将“country”作为 KMCountryArea 的别名...因为该类有一个名为“country”的字段。例如,只需使用别名“c”...

从 KMCountryArea c 中选择 c,其中 c.nomeFolder = :nomeFolder 按 c.idCountryArea 排序

关于java - 如何正确实现获取对象列表的 Hibernate NamedQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28900189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com