У меня есть класс для ID
@org.hibernate.annotations.AccessType("property")
public class ObjectID implements java.io.Serializable
{
private long value;
long getValue()
{
return value;
}
void setValue(Long id)
{
value = id != null ? id : 0L;
}
// equals, hash, contructor
}
И сопоставили класс (Пациент), который использовал этот ID-класс. Я хочу сгенерировать длинное значение в классе ObjectID. помоги мне.
Я пытался
public class Patient implements Serializable
{
@javax.persistence.Id
@javax.persistence.Column(name = "aa_id")
@org.hibernate.annotations.Formula("case when aa_id is null then patient_seq.nextval else aa_id end")
@javax.persistence.AttributeOverride(name = "value", column = @Column(name = "aa_id"))
private ObjectID id;
}
и
public class Patient implements Serializable
{
@javax.persistence.Id
@javax.persistence.SequenceGenerator(name = "PatientSequenceGenerator",
sequenceName = "patient_seq")
@javax.persistence.GeneratedValue(strategy = GenerationType.SEQUENCE,
generator = "PatientSequenceGenerator")
@javax.persistence.AttributeOverride(name = "value", column = @Column(name = "aa_id"))
private ObjectID id;
}
но там не полезно
Одним из способов разрешения этой ситуации является написание пользовательского userType для ObjectID и создание собственного ID-генератора.