そのため、偶数オブジェクトをロードするときに、会場とアーティストオブジェクトをロードすることができません。基本的に、イベントを作成するときは、特定のアーティストと特定の会場をロードし、イベントのartistKeyフィールドとvenueKeyフィールドにキーを保存します。ただし、ロードしても常にnullになります。私は自分の会場とアーティストに「@Persistent(defaultFetchGroup = "true")」と「@Persistent(mappedBy = "venue")@Element(dependent = "true")」のアノテーションを試しましたが、アーティスト/会場としてはまだ運がありませんイベントをロードするとnullとして表示されます(キーはそこにあります)。defaultFetchGroupを試してみると、親がすでに永続化されている場合はロードできないと表示されます。これは理にかなっていると思います。
public class Event {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key id;
@Persistent
private Key artistKey;
@Persistent
private Key venueKey;
private Artist artist;
private Venue venue;
//other fields
//getters and setters
}
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Venue {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key id;
//other fields
//getters and setters
}
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Artist {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key id;
//other fields
//getters and setters
}