Для того, чтобы автоматически сгенерировать ID для ентити, необходима запись вида:
@Id
@GeneratedValue(
strategy=GenerationType.TABLE)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
Однако для MySQL при попытке создания новой записи в базе будет выдавать Exception типа:
org.hibernate.exception.SQLGrammarException: could not get or update next value
.......
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'sequence_next_hi_value' in 'field list'
Проблема решилась, когда в файле спринг-конфигурации в разделе hibernateProperties было прописано
<property name="hibernateProperties">
....
hibernate.id.new_generator_mappings=true
....
</property>
@Id
@GeneratedValue(
strategy=GenerationType.TABLE)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
Однако для MySQL при попытке создания новой записи в базе будет выдавать Exception типа:
org.hibernate.exception.SQLGrammarException: could not get or update next value
.......
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'sequence_next_hi_value' in 'field list'
Проблема решилась, когда в файле спринг-конфигурации в разделе hibernateProperties было прописано
<property name="hibernateProperties">
....
hibernate.id.new_generator_mappings=true
....
</property>
@Id
ОтветитьУдалить@GeneratedValue(strategy=GenerationType.IDENTITY)
private long id = 0;
просто так работает :)
да, entity лучше транскрибировать как энтити - ты все-таки по-русски пишешь ;)
ОтветитьУдалить