@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
с разных машин одновременно я получил один и тот же порядковый номер.Но я хочу получить разные порядковые номера для разных заказов.
Пожалуйста, предложите наилучшее из возможных решений.Как это не уникально в базе данных.поэтому я не могу использовать уникальные ограничения.