我有两个域类,分别是User和Item,如下所示
class User {
String username;
static hasMany = [wishList: Item]
}
class Item {
String heading;
static belongsTo = [owner: User]
}
我试图在页面中同时显示(用户和他的wishList)详细信息。现在,如果我使用“JOIN”(如下所示),则会得到重复的用户行
def users = criteria.list(offset:0, max:10) {
fetchMode("wishList", org.hibernate.FetchMode.JOIN)
}
如果我使用“SELECT”,如下所示。发生(n + 1)个SQL查询。
def users = criteria.list(offset:0, max:10) {
fetchMode("wishList", org.hibernate.FetchMode.SELECT)
}
什么是显示此数据的最佳方式(就性能而言)。
最佳答案
对于这种情况,最好的方法是使用join
def users = criteria.list(offset:0, max:10) {
fetchMode("wishList", org.hibernate.FetchMode.JOIN)
}
是的,会有重复的行,但是可以使用独特的方法
users.unique()
轻松删除