Я ищу способ создания первичного ключа с двумя значениями.
Мне нужно получить текущий год, добавить его в последовательность (эту последовательность необходимо перезапускать в начале каждого года.
Для 2018
First record: 20181
Second record: 20182
Для 2019
First record: 20191
Я думал использовать embededid
, который включает последовательностьчто я буду сбрасывать каждый год.
Редактировать
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Cars {
@EmbeddedId
private EmbedddedCarsKey id;
}
@Embeddable
public class EmbedddedCarsKey implements Serializable {
private int year;
@SequenceGenerator(name = "cars_id_seq", sequenceName = "cars_id_seq", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "cars_id_seq")
private Integer seq
public EmbedddedCarsKey();
year = LocalDate.now().getYear();
}
}
Когда я пытаюсь сохранить, я получаю
Cars cars = new Cars();
cars.setName("Honda");
carsRepository.save(cars);
org.hibernate.id.IdentifierGenerationException:для: класса com.ush.mcl.model.Cars сгенерирован пустой идентификаторнуль;