У меня есть составной ключ с двумя полями, и одно из этих полей использует стратегию @GenericGenerator:
@Embeddable
public class CpoPipelineId implements java.io.Serializable {
private static final long serialVersionUID = -8801983547876070377L;
private String pipelineId;
private String environmentId;
@GeneratedValue(generator = "pipeline_seq_generator")
@GenericGenerator(name = "pipeline_seq_generator", strategy = "com...model.StringPrefixedSequenceIdGenerator", parameters = {
@Parameter(name = StringPrefixedSequenceIdGenerator.INCREMENT_PARAM, value = "50"),
@Parameter(name = StringPrefixedSequenceIdGenerator.VALUE_PREFIX_PARAMETER, value = "PIP_") })
@Column(name = "pipeline_id", nullable = false, length = 100)
public String getPipelineId() {
return this.pipelineId;
}
@Column(name = "environment_id", nullable = false, length = 100)
public String getEnvironmentId() {
return this.environmentId;
}
Класс, который использует этот pk:
@Entity
@Table(name = "cpo_pipeline", catalog = "xpto")
public class CpoPipeline implements java.io.Serializable {
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "pipelineId", column = @Column(name = "pipeline_id", nullable = false, length = 100)),
@AttributeOverride(name = "environmentId", column = @Column(name = "environment_id", nullable = false, length = 100)) })
public CpoPipelineId getId() {
return this.id;
}
Ошибка : org.hibernate.id.IdentifierGenerationException: нулевой идентификатор, созданный для: class com.closeupinternational.cpoprocessregistry.model.CpoPipeline
Как я могу использовать @EmbeddedId с одним из полей, созданных с использованием стратегии @GenericGenerator ? Я не могу использовать последовательность и даже идентичность.