是否可以在休眠中设置一个字段以在它为空时生成一个值?
这不是主键而是业务键。基本上我有一个带有条形码字段的容器。如果没有指定条形码,则自动生成(例如,前缀 + 序列号)。
这是可能的还是我需要创建一个自定义方法来访问下一个序列值?
看看这个:Hibernate JPA Sequence (non-Id)
这个想法是为生成的值创建一个实体,BarCode
然后将其用作主实体的属性:
@Entity
public class BarCode{
private static final String PREFIX = "PREFIX";
@Id
@GeneratedValue(...)
private Long number;
public String getBarCodeValue(){
return PREFIX + getNumber();
}
}
@Entity
public class MyEntity {
@Id ..
private Long id;
@OneToOne(...)
private BarCode barCode;
public String getBarCodeValue(){
return barCode.getBarCodeValue();
}
}
从类本身为条形码分配值。尝试这样的事情。
int sequencenumber = generateSequence();
String barcode = prefix + sequencenumber;
我没有试过这个。所以我不确定这是否可行。试试看。
另请查看: 为 JPA 中的列设置默认值