0

次のようなドメインクラスがあります

Class Author{
String name 

List books = LazyList.decorate(new ArrayList(), FactoryUtils.instantiateFactory(Book.class)


static hasMany = [books:Book]

}

Class Book {
String title
static belongsTo = [author:Author]

}

今、私は著者を取得しようとしています

Author authorInstance = Author.find("from Author a inner join fetch a.books where a.id =:authorid",[authorid:Long.parseLong(params.id)]

現在、この著者が書籍を持っていない場合、つまり、書籍の関連付けが空の場合、返される authorInstance は null です。

よくわかりませんが、これはlazyListが原因で発生していると思います(lazyListを使用している理由は、データバインディングを簡単にするためです)。

4

1 に答える 1

0

問題は内部結合にあることがわかりました。関連付けが空の場合、内部結合は明らかに何も返さないため、それを左外部結合に変更し、機能し始めました

于 2012-10-15T10:07:45.683 に答える