Проблема слияния JPA - PullRequest
       9

Проблема слияния JPA

0 голосов
/ 23 февраля 2010

В моем приложении на основе spring / openjpa у меня есть две простые сущности:

@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;
...}

Я пытаюсь сохранить игровой объект со связанным 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;
}

И я получаю NullPointerException в строке: entity.getTarget (). GetGames () всегда null, событие, если я установил здесь пустой hashmap. : / Почему

1 Ответ

1 голос
/ 23 февраля 2010

Я бы посоветовал иметь:

protected Collection<Game> games = new HashMap<Game>();

Таким образом, значением по умолчанию будет пустая коллекция (хорошая практика), а не null (плохая практика)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...