@Entity
@Table
@Cacheable(cacheNames = "domain")
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE, include="non-lazy")
public class Test implements Serializable {
private Long id;
private Long orderNumber;
public String getId() {
return id;
}
public void setId(Longid) {
this.id = id;
}
public String getOrderNumber() {
return orderNumber;
}
public void setOrderNumber(LongorderNumber) {
this.orderNumber= orderNumber;
}
@Transient
private synchronized Integer getNextOrderNumber() {
if (orderNumber== null) {
orderNumber= 1l;
} else {
orderNumber++;
}
return orderNumber;
}
在同一时间从不同机器上调用方法getNextOrderNumber
时,我得到了相同的序列号。但是我希望它获得不同订单的不同序列号。
请提出最佳解决方案。由于它不是数据库中唯一的。所以我也无法使用唯一约束。