hibernate复合主键查询问题

表结构:
user表: User
user_id(pk), name

address表: Address
address_id(pk) ,name

user_address表: UserAddress
user_id,address_id (复合主键)

UserAddress的复合主键类为UserAddressKey,UserAddressKey由User,Address类构成

现在我要对user,user_address通过user_id关联查询,我配置好2个表的1对多关系,但我不知道该如何写HQL了
我是这样写的:from User left join UserAddress
但是报错

3表的联合查询又如何作到呢?

User 里只有 useraddress的 set 只能获得address 的ID

配置好2个表的1对多关系后,直接查询User对象就可以了。

关键是你User和Address建立了一种对象聚合关系即可。

谢谢jdon的耐心解答

2个表的关联查询已经解决,from User usr inner join fetch usr.useraddress

但是3个表关联查询的问题依然,因为在User类中只有getUserAddress方法,而UserAddress中并没有getAddressName这样的方法,这样我就无法获得addressName了,看来通过HQL似乎无法解决了

我现在正在通过hibernate的createSQLQuery来解决,但spring似乎没有封装该方法,只好调用doInHibernate(),却发现hibernate3似乎已经没有createSQLQuery(sql,new String[] , new Class[]) 这样的方法了,代替方法是createSQLQuery(sql).addEntity(String,Object),还是我没有找到?

没看仔细:session.createSQLQuery(sql)..addEntity().addEntity()..

真的不想用这样的方法,该怎样用HQL解决呢?