Dans mon application printemps/openjpa, j'ai deux entités simples:JPA fusion problème
@Entity
public class Game {
@Id
@GeneratedValue
protected Long id;
@ManyToOne(cascade={CascadeType.PERSIST,CascadeType.MERGE})
@JoinColumn(name = "target_id")
protected GameObject target;
...}
@Entity
public class GameObject {
@Id
@GeneratedValue
protected Long id;
@Column
protected String name;
@OneToMany(mappedBy = "target", cascade = CascadeType.ALL)
protected Collection<Game> games;
...}
J'essaie de sauver objet de jeu avec associé targetObject:
@PersistenceContext
protected EntityManager entityManager;
@Override
@Transactional
public Game createEntity(Game entity) {
getEntityManager().persist(entity);
if (entity.getTarget() != null) {
entity.getTarget().getGames().add(this);
}
getEntityManager().getEntityManager().flush();
return entity;
}
Et je reçois NullPointerException en ligne: entity.getTarget(). getGames() est toujours nul, event si je mets ici hashmap vide. :/Pourquoi
Je pense que cela aiderait si vous pourriez montrer le code qui appelle 'createEntity'. En particulier, il serait bon que vous puissiez montrer que lorsque vous construisez votre GameObject, vous avez une ligne comme 'games = new ArrayList();' –
John
où est la "fusion" du titre? – Bozho