Java 如何在hibernate中从父表检索子表记录?
我正在进行Java 如何在hibernate中从父表检索子表记录?,java,mysql,hibernate,exception,Java,Mysql,Hibernate,Exception,我正在进行Hibernate工作,其中有两个表,如Country和City 国家: Id int(20)不为空, CountryName int(30)不为空, 主键(Id) 城市: CId int(20)不为空, CityName varchar(30)不为空, 状态varchar(30)不为空, 添加约束cid外键(Country)引用id(id) 表示城市多对一映射到国家 现在我需要从国家访问城市详细信息 我已经创建了“Country.hbm.xml” 我已经创建了“City.hbm
Hibernate
工作,其中有两个表,如Country
和City
国家:
Id int(20)不为空,
CountryName int(30)不为空,
主键(Id)
城市:
CId int(20)不为空,
CityName varchar(30)不为空,
状态varchar(30)不为空,
添加约束
cid外键(
Country)引用
id(
id)代码>
- 表示
城市
多对一映射到国家
现在我需要从国家访问城市
详细信息
- 我已经创建了“Country.hbm.xml”
- 我已经创建了“City.hbm.xml”
查询:
从国家/地区中选择a.countryName、a.cities.cityName、a.cities.state作为
查询结果
org.hibernate.QueryException:非法尝试使用元素属性引用[cityName][从国家/地区中选择a.countryName、a.cities.cityName、a.cities.state取消引用集合[country0_u.Id.cities]
我不知道它为什么会出现这种异常…,如果有人知道,我将非常高兴
注意:我正在从您所在国家/地区的父实体中检索子实体详细信息。像这样为城市定义@OneToMany映射。i、 一个国家可以有许多城市
@OneToMany(targetEntity = City.class, cascade = { CascadeType.ALL })
private List<City> cites;
@OneToMany(targetEntity=City.class,cascade={CascadeType.ALL})
私人名单;
然后,一旦加载国家,只需调用Country.getCities(),它将返回该国家的所有城市