JPAイベント(postUpdate)が動作していて、@ElementCollectionとしてマップされているものを除き、エンティティのプロパティを更新すると正しくトリガされます。@ElementCollectionプロパティのEventListenersをトリガするトリックは何ですか?
これは制限ですか?設定オプション?私は、「タイトル」の変化は、私のリスナーによってcatchedされますが、私は「目的地」
を変更したときに同じことが起こらない変更した場合はここでは、私のエンティティの一部つまり
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class Pckg {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(nullable = false, length = 100)
private String title;
@ElementCollection
@CollectionTable (
name = "PckDest",
joinColumns = @JoinColumn(name = "package_id", nullable = false)
)
@Column(name = "destination", nullable = false, length = 150)
private List<String> destinations;
...
です
私は
おかげ
あなたは、あなたが「行き先」_と言うときに、より具体的になることができますか?あなたはリストを置き換えたり、リストを変更していますか? – pgreen2
@ pgreen2 thx、私が_change_と言ったとき、私はいずれかの方法を意味しました。たとえば、リスト上の要素、例えば 'destinations.add(" LA ");や単に新しいリストを設定するなどです。 'destinations = new ArrayList()...'次に、私は 'EntityManager.save(xx)'を呼び出しました。 'Pckg.setTitle(" new title ")を実行すると、私の' onPostUpdate() 'が正しく呼び出されません。 – maverick
私は、仕様(http://download.oracle.com/ otndocs/jcp/persistence-2.0-fr-oth-JSpec /)、間違っていると私は何も飛びません。イベントが発生したときに私はいくつかのメモに気づいた。変更が発生したとき、または変更がフラッシュされたときに発生する可能性があります。また、この仕様では、エンティティが変更されてから削除または追加され、変更された場合に何が起こるべきかについては記述していません。あなたの問題は、これらのエッジケースのようには聞こえません。私はテストベッドのセットアップを持っていません。リスナーコードとテストコードを投稿できますか? – pgreen2