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 изменился, объяснив этот сценарий?