通常の Foo エンティティがあり、persist(foo) を呼び出すと、エンティティに @Id が自動的に設定されます。ただし、上記の Foo エンティティに Bars のコレクションがバインドされている場合は、
(...)
@OneToMany(cascade=Cascade.ALL)
Set<Bar> getBars()
(...)
新しい Bar を作成して foo の Bars コレクションに追加し、merge(foo) を呼び出すと、作成したばかりの Bar は永続化されますが、その @Id は更新されません!
後で find(Foo.class, foo.getId()) を呼び出さずに、この ID を取得する方法はありますか?