dostal jsem se do trapneho problemu. Pouzivame pro ukladani JPA a
zjistil jsem, ze zpusob jak se simuluji many to many vazby v AppEngine
je pouzitelny. Problem vsak nastane, kdyz mam Entitu, kde chci ukladat
klice na ostatni Entity. Vypada to, ze JPA neinicializuje Kolekci nebo
Set, kam chci pridat novy prvek. Setkal se nekdo se stejnym problemem?
V zasade JPA by se melo postarat o inicializaci takove eintity pri
jejim prvnim vytvoreni a o vytvoreni Set. Bohuzel kdyz chci pridat do
Set novy prvek, dostavam vyjimku NPE.
Zdrojak:
@Entity
@Table(name = "users")
@NamedQueries({})
public class User implements Serializable {
@Transient
public final static String findByNickName = "User.findByNickName";
@Transient
public final static String nickNameIsUnique =
"User.nickNameIsUnique";
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
@Extension(vendorName="datanucleus", key="gae.encoded-pk",
value="true")
private String id;
@Basic(optional=false)
@Column(name = "friends")
private Set<String> friends;
Pri prvotnim vytvoreni a naplneni entity, je vsechno OK. Kdyz chci
pridat pritele:
entityManager.addFriend(uMe, friendTwo);
zjistuji ze vsechna policka jsou inicializovana, ale friends=null.
Delam neco spatne?
Diky, Jara