2012-07-03 2 views
0

У меня есть таблица SQL с autoincremt Id (межд) Внутри метод в JSF фасоли, когда я вставить новую запись: создать новый объект р = новый Prop(); затем установите все свойства, кроме id, и я отправлю на сеанс: session.save (p); Это работает для первой записи; при вставке второй или более записей у меня есть NotUniqueObjectException также, если я создал новый объект; Как я могу избежать этого?Hibernate: NotUniqueObjectException после вставки нового autoicnremnteID объекта

+0

вы установить стратегию генерации идентификатора в спящем режиме? –

ответ

0

вы можете установить стратегию генерации идентификаторов в спящем режиме

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

Он все еще не работает; Теперь я вижу, что работает только с первой записью, потому что она создает объект с id = 0, записывает его в dbase; и каждый раз, когда я создаю новый объект, он снова создает его с id = 0, поэтому я не могу писать новые записи ... – antoiovi

+0

вы можете попробовать другую стратегию, такую ​​как идентификация, ... –

+0

Теперь это: @Id @Column (name = "cod", unique = true, nullable = false) @GeneratedValue (strategy = GenerationType.AUTO) private int cod; – antoiovi

0

Как вы используете спящий режим, в спящем режиме, мы должны определить тип автоматического приращения , если вы используете отображение НВМ, то сделайте ниже.

для отображения HBM:

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

для аннотаций:

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

Теперь я использовал: <генератор класс = "приращение"/ и @Id @column (имя = "codice", unique = true, nullable = false) @GeneratedValue (strategy = GenerationType.AUTO) private int cod; и это работает; Танк для всех; (теперь я должен лучше понять, как/почему это работает, но это другой пролем ...) – antoiovi

+0

опубликуйте его в ответе и за исключением его самих – subodh

Смежные вопросы