<p>$B$O$8$a$^$7$F!#(B</p>
<div>$BD9_7$H?=$7$^$9!#(B<br>$B8=:_!"!V(BSeasar2$B$H(BHibernate$B$G3X$V%G!<%?%Y!<%9%"%/%;%9(B JPA$BF~Lg!W$H8@$&K\$G(B</div>
<div>JPA$B$r3X=,$7$J$,$i!"4JC1$J(BWeb$B%"%W%j%1!<%7%g%s$r:n@.$7$F$$$^$9!#(B<br>JPA$B$NHO0O$G$O$J$/!"(BHibernate$B$N5!G=$K$J$C$F$7$^$&$N$G$9$,!"(B<br>$B<ALd$5$;$F$/$@$5$$!#(B</div>
<div>$B<!$N(BPerson$B%(%s%F%#%F%#$,$"$j$^$9!#(B</div>
<div><br>@Entity<br>public class Person {</div>
<div>&nbsp;&nbsp;&nbsp; @Id @GeneratedValue<br>&nbsp;&nbsp;&nbsp; private Long id;</div>
<div>&nbsp;&nbsp;&nbsp; private String name;</div>
<div>&nbsp;&nbsp;&nbsp; private Boolean married;</div>
<div>&nbsp;&nbsp;&nbsp; private Boolean hasForeignCar;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; ......<br>}</div>
<div>&nbsp;</div>
<div>$B#2$D$N(BBoolean$B7?%W%m%Q%F%#(Bmarried$B$H(BhasForeignCar$B$,JQ99$5$l$?>l9g!"(B<br>$BJQ99$5$l$?%W%m%Q%F%#$H$=$NCM$K$h$C$F(B<br>$B99?7MzNr%F!<%V%k$K<!$N$h$&$J%a%C%;!<%8$rEPO?$7$?$$$H;W$C$F$$$^$9!#(B<br>$B!V(B(married|hasForeignCar)$B$,(B(true|false)$B$KJQ99$5$l$^$7$?!#!W(B<br>$BF1;~$K#2$D$N%W%m%Q%F%#$,JQ99$5$l$?>l9g$O!"(B<br>$B#27o$N99?7MzNr%m%0$rEPO?$7$^$9!#(B</div>
<p>$B$3$l$r<B8=$9$kJ}K!$O$$$/$D$+$"$k$H;W$$$^$9$,!"(B<br>$B$3$A$i$N2a5n%m%0$rGR8+$7$^$7$F!"(B<br>Hibernate$B$N(BEventListener$B$r;H$C$F$_$h$&$+$H;W$$$^$7$?!#(B<br><a href="http://ml.seasar.org/archives/jpa/2007-April/000006.html">http://ml.seasar.org/archives/jpa/2007-April/000006.html</a></p>

<p>$B$7$+$7!"(Bmarried$B$H(BhasForeignCar$B$N$I$A$i$N%W%m%Q%F%#$,JQ99$5$l$?$N$+$r(B<br>$BH=CG$9$kJ}K!$,$o$+$j$^$;$s!#(B<br>public class PersonPostUpdateEventListener extends EJB3PostUpdateEventListener {</p>
<p>&nbsp;&nbsp;&nbsp; @Override<br>&nbsp;&nbsp;&nbsp; public void onPostUpdate(PostUpdateEvent event) { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; super.onPostUpdate(event);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //$BJQ998e$N%(%s%F%#%F%#(B<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log.debug(&quot;event.getEntity():&quot; + event.getEntity());</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //$BJQ99A0$N3F%W%m%Q%F%#$NCM$,3JG<$5$l$F$$$k(B<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //$BG[Ns$N$I$NMWAG$,(Bmarried, hasForeignCar$B$KBP1~$9$k$N$+!)(B<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object[] oldState = event.getOldState();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //$BJQ998e$N3F%W%m%Q%F%#$NCM$,3JG<$5$l$F$$$k(B<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object[] state = event.getState();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ......</p>
<p>$B$3$N>l9g!"$I$N$h$&$KH=CG$7$?$i$h$$$N$G$7$g$&$+!)(B</p>
<div>$B$h$m$7$/$*4j$$CW$7$^$9!#(B<br>$B0J>e$G$9!#(B</div>
<div>&nbsp;</div>