我在Hibernate中绝对是新的,我有以下情况,我不知道如何处理。
所以我有这两个实体类:
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
}
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 的实例相关联实体类。
为此,我使用了 @OneToOne 注释
@OneToOne
private KMCountry country;
根据我的理解,在我的数据库上的 KM_COUNTRY_AREA 表格中,我将有一个包含KMCountry ID( idCountry )的字段。是对的还是我错过了什么?
如果现在是正确的,我的问题是我需要创建一个命名查询,该查询给出 KMCountryArea 的 nomeFolder 字段的值将会检索所有列表相关的 KMCountry 对象。
我正在尝试做这样的事情(我不能在这个阶段的作品中尝试它,我绝对不确定这是正确的方法):
@NamedQueries({
@NamedQuery(name = "kmCountryByName", query = "SELECT country FROM KMCountryArea country WHERE country.nomeFolder = :nomeFolder order by country.idCountryArea")
})
我的推理是否正确(如何绑定2个表和命名查询)或者我错过了什么?
拜托,你能帮助我完成这项任务吗?
TNX
答案 0 :(得分:0)
你有
"SELECT country FROM KMCountryArea country WHERE country.nomeFolder = :nomeFolder order by country.idCountryArea"
并且您不能将“country
”作为KMCountryArea的ALIAS ...因为该类有一个名为“country
”的字段。只需使用“c”的别名,例如......
SELECT c FROM KMCountryArea c WHERE c.nomeFolder = :nomeFolder order by c.idCountryArea