vladmihalcea.com/...

-Boot2.0.0 кажется, изменил способзимовать автоматически настраивается.

Давайте предположим две простые и независимые сущности JPA:

@Entity
class Car {
   @Id
   @GeneratedValue
   private long id;
   //....
} 

@Entity
class Airplane {
   @Id
   @GeneratedValue
   private long id;
   //....
}

До, используя Spring-Boot1.5.10Я смог сгенерировать отдельные последовательности автоинкрементов, что означает, что я могу получитьCar с участием1 в качестве первичного ключа иAirplane с участием1 как первичный ключ тоже. Нет корреляции между ними, например, нет общей последовательности.

Теперь с2.0.0когда я последовательно создаю самый первыйCar тогда самый первыйAirplaneмашина получает1 как ID и самолет получает2.

Похоже, ему приходится иметь дело сGeneratedType.AUTOэто «используется по умолчанию», указанный в@GeneratedValue Источник аннотации.
Тем не менее, мои рассуждения, кажется, остановились здесь, так какGeneratedType.AUTO был также установлен по умолчанию с1.5.10.

Простой способ обойти мои ожидания - указатьIDENTITY Тип стратегии генерации примерно так:

@Entity
class Car {
   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   private long id;
   //....
} 

@Entity
class Airplane {
   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   private long id;
   //....
}

Я не могу понять объяснение этого поведения.

Что имеет Spring-boot2.0.0 изменился, объяснив этот сценарий?

Ответы на вопрос(1)

Ваш ответ на вопрос