Удалите объект JPA с отношением @OneToMany в Play! Фреймворк - PullRequest
0 голосов
/ 11 февраля 2012

Я пытаюсь удалить объект в Play!но я получаю эту ошибку:

PersistenceException occured : org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update

Я предполагаю, что есть проблема с отношением @OneToMany, которое я объявил внутри.Я не уверен, хотя.Вот объявление моей сущности:

@Entity
public class JumpSession extends GenericModel{
public JumpSession()
{
    sessionUID = java.util.UUID.randomUUID().toString();
}
//***********JPA relationships
@Id
public String sessionUID;

@OneToMany(mappedBy="jumpSession")
public List<UserJump> userJumps;

@ManyToOne
public User jumpMaster;
//**********end JPA relationships

public String inspectorUID;
public String packDetailUID;
public String aadsn;
public String aadType;
public String dropzone;
public String jumpType;
public String sessionName;
@As("MM/dd/yyyy")
public Date createdOn;
@As("MM/dd/yyyy")
public Date jumpDate;
public String startNotes;
public String endNotes;
public String notes;
public String startTime;
public int status;
}

Когда я удаляю JumpSession, мне нужно, чтобы записи UserJump просто указывали на ноль, а не на JumpSession.Вот простой код, который я использую для удаления объекта:

JumpSession jumpSession = JumpSession.findById("blah");
jumpSession.delete();

РЕДАКТИРОВАТЬ: соответствующие части UserJump:

@Entity
public class UserJump extends Model{

@ManyToOne
public JumpSession jumpSession;
}

Есть много других частей UserJump, которые все ещесделать его уникальным даже без JumpSession.Есть ли способ, чтобы ссылка jumpSession была null?

РЕДАКТИРОВАТЬ: Я собираюсь открыть новый вопрос по этому вопросу, так как мой вопрос изменился.Текущий ответ соответствует первоначальному вопросу.

1 Ответ

0 голосов
/ 11 февраля 2012

Ваши userJumps все еще имеют ссылку на jumpSession. Первое удаление userJumps решит проблему.

Если по какой-то причине вы хотите сохранить UserJumps, вам нужно удалить ссылку на jumpSession из userJumps

...