是否有可能在hibernate中设置一个字段,以便在空值时生成一个值?休眠JPA:可选值生成
这不是主要关键,而是业务关键。基本上我有一个带有条形码字段的容器。如果未分配条形码,则自动生成(例如,前缀+序列号)。
这是可能的还是我需要创建一个自定义方法来访问下一个序列值?
是否有可能在hibernate中设置一个字段,以便在空值时生成一个值?休眠JPA:可选值生成
这不是主要关键,而是业务关键。基本上我有一个带有条形码字段的容器。如果未分配条形码,则自动生成(例如,前缀+序列号)。
这是可能的还是我需要创建一个自定义方法来访问下一个序列值?
我发现了一个类似的问题,我会用接受的答案去做,因为它似乎是最灵活的答案。
从班级本身分配条形码的值。 尝试这样的事情。
int sequencenumber = generateSequence();
String barcode = prefix + sequencenumber;
我还没有试过这个。所以我不确定这是否会奏效。请尝试一下。
看一看这个: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();
}
}
我不想总是生成。该值可以从外部提供,并且只有在没有提供时才需要生成。 –
没有给默认值的选项。类似于default =''已经用它来为一个时间戳字段提供默认日期。 –