Существуют разные способы автоматического создания значения, но они всегда должны выполняться в поле @Id
. Если оно не объявлено, вы не сможете автоматически увеличить свое значение.
Существуют различные типы стратегий для увеличения вашего идентификатора. В этом блоге вы можете узнать о них больше. Для вашего примера, IDENTITY должна помочь.
@Entity
@Table(name = "product")
class Product{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
int rank;
}
Обновление
После некоторых исследований кажется, что Hibernate теперь позволяет автоматически увеличивать другие поля без идентификатора, но для этой цели он использует другую аннотацию. Я не пробовал это, но возможно это могло бы работать. Это в случае, если ваш ранг не ваш идентификатор.
@Generated(GenerationTime.INSERT)
@Column(name = "column_name", insertable = false)
int rank;