发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 SOA

hibernate复合主键查询问题

wt
2006-08-02 12:18
赞助商链接

表结构:
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
但是报错







wt
2006-08-02 14:45

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

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

2006-08-03 15:32

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

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

wt
2006-08-03 15:43

谢谢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),还是我没有找到?

wt
2006-08-03 15:50

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

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

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com