2012-10-06 3 views
2

Topic 클래스는 Model까지 확장됩니다. 테이블 주제의 첫 번째 레코드를 생성
은 괜찮지 만, 다른 레코드 생성 실패 : 예외가이 라인에서 당연히 발생재생! Ebean 프레임 워크 : PersistenceException

[PersistenceException: ERROR executing DML bindLog[] error[ERROR: duplicate key value violates unique constraint "pk_topics"\n Detail: Key (id)=(1) already exists.]]

을 :

topic.save(); 

이 이상한 이유는

  1. 문제없이 이전에 작동했습니다.
  2. 속성 id는 다음 값 자동 증가에 가정은 A 주석 @Id로 정의하지만, 나는 예외에 대한 중복 ID를 얻을 수있다.

이 문제를 해결하려면 어떻게해야합니까? (관련이있는 것만 모든 물론,)

클래스 Model : 나는 해결책을 발견

@Entity 
@Table (name = "topics") 
public class Topic extends Model { 
@Id 
public long id; 
public String title; 
public String content; 
@ManyToOne 
@JoinColumn(name = "forumId") 
public Forum forum; 
@ManyToOne 
@JoinColumn(name = "userId") 
public User user; 
public Date date; 

public static void create(Topic topic) { 
    topic.save(); 
} 
+1

모델과 모델을 저장하십시오. 비품을 사용합니까? 당신의 플레이 버전과 OS는 무엇입니까? @ 아이디가 충분하지 않습니다. 아마도 시퀀스가 ​​필요합니다 : http://www.objectdb.com/java/jpa/entity/generated. 나는 정체성을 사용했다. – Schleichardt

+0

'Topic' 클래스의 코드를 추가했습니다. 나는 비품이 아니다. Play를 사용 중입니다! 2.0 우분투 리눅스에서. – socksocket

답변

1

. id의 액세스 수정자를 다시 protected으로 변경하면 다시 작동합니다. 이상하지만 지금은 완벽하게 작동합니다.

설명?