プロファイル、いいね、場所のエンティティがあります
場所にはいいねがあります。Likesには、場所とプロファイルへの参照があります。
場所はいいねに1-Nの関係があります
@PersistenceCapable
public class Place {
@Persistent(mappedBy = "place")
@Element(dependent = "true")
private transient List<Like> likes;
Likeはプロファイルへの参照とPlaceへの参照を持っています
@PersistenceCapable
public class Like implements Serializable {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent
private Profile profile;
@Persistent
private Place place;
そして、プロファイルクラスはこのオブジェクトとは関係がありません
@PersistenceCapable
public class Profile {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private transient Key key;
Like to Place既存の場所を既存のプロファイルに追加する最良の方法は何ですか?
私はそれを行うために次のコードを使用します:
Profile profile;
Place place;
List<Like> likes;
pm = PMF.get().getPersistenceManager();
try {
place = pm.getObjectById(Place.class, placeId);
likes = place.getLikes();
profile = pm.getObjectById(Profile.class, KeyFactory.createKey(Profile.class.getSimpleName(), login));
} finally {
pm.close();
}
likes.add(new Like(place, profile));
place.setLikes(likes);
pm = PMF.get().getPersistenceManager();
try {
pm.makePersistent(place);
} finally {
pm.close();
}
プロファイルエンティティの複製があります。それを修正する方法はありますか?