웹 응용 프로그램에서 작업 중이며 JSF 및 JPA (EclipseLink)를 사용하고 있습니다.JPA 외래 키가 null입니다.
StoryTranslate translate = new StoryTranslate(null, sessionController.getEntity().getId(), getAuthUser().getId(), language,
title, description, new Date(), false);
EntityTransaction transaction = TransactionSingleton.getActiveInstance();
Story story = storyService.read(sessionController.getEntity().getId());
if (story != null){
if (story.getTranslateList() == null){
story.setTranslateList(new ArrayList<StoryTranslate>());
}
story.getTranslateList().add(translate);
translate.setStory(story);
}
transaction.commit();
을 나는 새로운 StoryTranslate
을 만들려고 할 때, 나는 DatabaseException
를 얻을 : 다음은 A ManagedBean
에서
@Entity
@Table(name = "story")
public class Story{
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Integer id;
private String title;
private String description;
@OneToMany(mappedBy = "story", cascade=CascadeType.ALL)
private List<StoryTranslate> translateList;
//getters and setters
}
@Entity
@Table(name = "story_translate")
public class StoryTranslate{
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Integer id;
@Column(name="STORY_ID")
private Integer storyId;
@ManyToOne
@JoinColumn(name="story_id", referencedColumnName="id", updatable=false, insertable=false)
private Story story;
//some other fields, getters and setters
}
내가 뭐하는 거지 다음과 같이 나는 매핑되는 테이블 story
및 story_translate
을 가지고 story_id
은 null 일 수 없습니다.
이전에 관계를 관리했지만이 오류를 본 적이 없습니다.
어디에 문제가 있습니까?
편집 : 죄송하지만 매핑의 다른 부분을 잊어 버렸습니다 (수면 부족이어야 함).