2

是否可以在休眠中设置一个字段以在它为空时生成一个值?

这不是主键而是业务键。基本上我有一个带有条形码字段的容器。如果没有指定条形码,则自动生成(例如,前缀 + 序列号)。

这是可能的还是我需要创建一个自定义方法来访问下一个序列值?

4

2 回答 2

1

看看这个: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();
    }
}
于 2013-03-28T12:55:43.287 回答
0

从类本身为条形码分配值。尝试这样的事情。

int sequencenumber = generateSequence();
String barcode = prefix + sequencenumber;

我没有试过这个。所以我不确定这是否可行。试试看。

另请查看: 为 JPA 中的列设置默认值

于 2013-03-28T12:54:44.563 回答