Какой тип данных можно использовать для создания переменной первичного ключа в Hibernate / jpa?

#java #hibernate #jpa

#java #спящий режим #jpa

Вопрос:

 @Entity
public class MyEntity {

@Id
@Column()
private String prKey;

  //....
}
 

какой тип данных можно использовать для создания переменной первичного ключа в Hibernate / JPA?

Ответ №1:

Согласно документации hibernate:

Простые идентификаторы сопоставляются с одним базовым атрибутом и обозначаются с помощью javax.persistence.Id аннотации.

В соответствии с JPA в качестве типов атрибутов идентификаторов следует использовать только следующие типы:

  • любой примитивный тип Java
  • любой тип примитивной оболочки
  • java.lang.Строка
  • java.util.Дата (TemporalType#ДАТА)
  • java.sql.Date
  • java.математика.BigDecimal
  • java.математика.Большой интегратор

Любые типы, используемые для атрибутов идентификаторов за пределами этого списка, не будут переносимыми.

Спящий режим также поддерживается java.util.UUID в качестве идентификатора.

Ответ №2:

Вы можете использовать примитивы Java или примитивные оболочки для определения вашего типа идентификатора. Если у вас нет каких-либо особых требований, таких как составные ключи и т. Д… самое простое решение — использовать Long в качестве ключа.

 @Id
@GeneratedValue
@Column(name = "ID")
private Long id;