我怎样才能正确实现这个获取对象列表的 Hibernate NamedQuery?
How can I correctly implement this Hibernate NamedQuery that obtain a list of objects?
我完全是 Hibernate 的新手,遇到以下情况我不知道如何处理。
所以我有这 2 个实体 classes:
KMCountryArea 在我的数据库上映射 KM_COUNTRY_AREA table:
@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
}
KMCountry 在我的数据库上映射 KM_COUNTRY table:
@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 class 我有 KMCountry country 字段关联到KMCountry 实体 class.
的实例
为此我使用了 @OneToOne 注释
@OneToOne
private KMCountry country;
据我所知,在我的 KM_COUNTRY_AREA table 数据库中,我将有一个包含 KMCountry id 的字段(idCountry).是对的还是我遗漏了什么?
如果它现在是正确的,我的问题是我需要创建一个命名查询,它给出 KMCountryArea[=54] 的 nomeFolder 字段的值=] 将检索所有相关 KMCountry 对象的列表。
我正在尝试做这样的事情(我不能在工作的这个阶段尝试它,我绝对不确定这是正确的方法):
@NamedQueries({
@NamedQuery(name = "kmCountryByName", query = "SELECT country FROM KMCountryArea country WHERE country.nomeFolder = :nomeFolder order by country.idCountryArea")
})
我的所有推理都是正确的吗(如何将 2 table 和命名查询绑定在一起)还是我遗漏了什么?
拜托,你能帮我完成这个任务吗?
Tnx
你有
"SELECT country FROM KMCountryArea country WHERE country.nomeFolder = :nomeFolder order by country.idCountryArea"
并且您不能将“country
”作为 KMCountryArea 的别名...因为 class 有一个名为“country
”的字段。例如,只需使用别名 "c" ...
SELECT c FROM KMCountryArea c WHERE c.nomeFolder = :nomeFolder order by c.idCountryArea
我完全是 Hibernate 的新手,遇到以下情况我不知道如何处理。
所以我有这 2 个实体 classes:
KMCountryArea 在我的数据库上映射 KM_COUNTRY_AREA table:
@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 }
KMCountry 在我的数据库上映射 KM_COUNTRY table:
@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 class 我有 KMCountry country 字段关联到KMCountry 实体 class.
的实例为此我使用了 @OneToOne 注释
@OneToOne
private KMCountry country;
据我所知,在我的 KM_COUNTRY_AREA table 数据库中,我将有一个包含 KMCountry id 的字段(idCountry).是对的还是我遗漏了什么?
如果它现在是正确的,我的问题是我需要创建一个命名查询,它给出 KMCountryArea[=54] 的 nomeFolder 字段的值=] 将检索所有相关 KMCountry 对象的列表。
我正在尝试做这样的事情(我不能在工作的这个阶段尝试它,我绝对不确定这是正确的方法):
@NamedQueries({
@NamedQuery(name = "kmCountryByName", query = "SELECT country FROM KMCountryArea country WHERE country.nomeFolder = :nomeFolder order by country.idCountryArea")
})
我的所有推理都是正确的吗(如何将 2 table 和命名查询绑定在一起)还是我遗漏了什么?
拜托,你能帮我完成这个任务吗?
Tnx
你有
"SELECT country FROM KMCountryArea country WHERE country.nomeFolder = :nomeFolder order by country.idCountryArea"
并且您不能将“country
”作为 KMCountryArea 的别名...因为 class 有一个名为“country
”的字段。例如,只需使用别名 "c" ...
SELECT c FROM KMCountryArea c WHERE c.nomeFolder = :nomeFolder order by c.idCountryArea