Overblog Tous les blogs Top blogs Technologie & Science Tous les blogs Technologie & Science
Editer l'article Suivre ce blog Administration + Créer mon blog
MENU

Hibernate 中拷贝Object数据的问题

22 Avril 2015 Publié dans #java, #hibernate

有以下数据表格

Flight Table : FlightID FlightNumber

Timing Table : TimingID FlightID TimingName TimingValue

由以上结构看出来,flightID是flight表格的key,timingID是timing表格的key,flightID是timing表格的foreign key。

有object:FlightA(12,FR123)

FlightB(13,FR456)

TimingA(90,12,LandingTime,12:00)

TimingB(91,13,TakeOffTime,12:01)。

可以看出FlightA和TimingA相连,FlightB和TimingB相连,如果想把TimingB拷贝到FlightA上。

简单的想法是:

FlightA.setTime(FlightB.getTiming(B));

但是这样不能保证TimingB直接set到FlightA的object上。因为此时拷贝的是整个的TimingB的Object,包括了TimingID和FlightID。Hibernate只会对这个entry做一个简单的update操作。

所以正确的做法是:

Timing clone = FlightB.getTiming(B).cloneWithoutID();

FlightA.setTime(clone);

必须要做一个去ID的clone才能保证顺利的在FlightA上拷贝到TimingB。

Publicité
Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article