2012-07-03 3 views
0

autoincremt가있는 sql 테이블이 있습니다. Id (int) 새 레코드를 삽입 할 때 JSF bean의 메소드 안에 : 새 객체를 만듭니다. p = new Prop(); 그런 다음 ID를 제외한 모든 속성을 설정하면 세션에 제출됩니다. session.save (p); 첫 번째 레코드에서 작동합니다. 난 새로운 객체를 생성 한 경우에도 NotUniqueObjectException이 두번째 이상의 레코드를 삽입 ; 어떻게 이것을 피할 수 있습니까? 당신은 최대 절전 모드를 사용하는 것처럼HIBERNATE : 새로운 autoicnremnteID 객체를 삽입 한 후 NotUniqueObjectException이 발생했습니다.

+0

당신이 최대 절전 모드에서 ID 생성 전략을 설정 한 : 주석에 대한

<id name="id" type="java.lang.Long"> <column name="ID" /> <generator class="identity" /> </id> 

? –

답변

0

당신은 하나 아래를 할 최대 절전 모드에서 우리는 당신이 HBM 매핑을 사용하는 경우 자동 증가 형 을 정의 할 수 있고, 최대 절전 모드

@Id 
@GeneratedValue(strategy=GenerationType.AUTO) 
private int id; 
+0

여전히 작동하지 않습니다. 이제 id = 0 인 객체를 생성하고 dbase에 쓰기 때문에 첫 번째 레코드에서만 작동하는 것을 볼 수 있습니다. 그리고 난 그것이 ID = 0으로 다시 생성하는 새로운 객체, 그래서 내가 당신의 정체성 같은 다른 전략을 시도 할 수 있습니다 ... – antoiovi

+0

새 레코드를 쓸 수를 만들 때마다 ... –

+0

는 지금은 다음과 같습니다 @Id @Column (이름 = "대구", 독특한 = 참, 거짓 = null 허용) @GeneratedValue (전략 = GenerationType.AUTO) 개인 INT 대구; – antoiovi

0

의 ID 생성 전략을 설정할 수 있습니다. HBM 매핑

:

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
+0

참조 = "codice", unique = true, nullable = false) @GeneratedValue (strategy = GenerationType.AUTO) private int cod; 그것은 작동합니다. 너 모두에게 너를 가라. – antoiovi

+0

자신을 대답에 게시하고 그것을 제외하고 (지금은 ... 작동 왜,하지만 그것이 다른 prolem이 얼마나/더 잘 이해한다) – subodh

관련 문제