hibernate中映射视图View来模拟子查询

由于hibernate不支持From子句中的子查询,很多地方处理起来不方便,考虑使用视图来模拟子查询,方法如下:
1、在数据库中使用sql建立需要的视图V_User
2、像建立普通表的映射一样,建立一个视图的Entity类UserView.java,用annotation或者xml进行ORM映射,@Table(name="V_User"),由于视图没有主键,UserView.java可以使用联合主键,建一个主键的Class,注意联合主键必须重写hashCode和equals方法。
3、在DAO中像使用普通Entity一样使用视图进行查询。
目前还没有找到怎么通过hibernate自动在数据库中创建视图,因此第一步还得手动在数据库中建立,这样数据库兼容性等需要自己考虑,部署时候也有点麻烦。

猜你喜欢

转载自lydia4me.iteye.com/blog/1766106
今日推荐