休眠@枚举为AtomicReference

时间:2020-04-08 18:10:10

标签: java hibernate atomic atomicreference

我有一个使用Hiberante进行数据库操作的类,并且需要它是线程安全的。我正在尝试将代码重构为在其操作中使用原子变量,而不是由于锁定而使用同步方法,因为由于大量请求的性能降低(许多线程在运行)而中断了应用程序,但是我由于异常,使用@Enumeration的变量无法重构为AtomicReference的问题:

[com.gateway.domain.ImportTypeDetail.importFrequency]属性为 注释为枚举,但其java类型不是枚举 [java.util.concurrent.atomic.AtomicReference]

重构前的代码:

@Column(name = Constants.Columns.IMPORT_FREQUENCY)
@Enumerated(EnumType.STRING)
private ImportFrequency importFrequency;

我重构为:

@Column(name = Constants.Columns.IMPORT_FREQUENCY)
@Enumerated(EnumType.STRING)
private AtomicReference<ImportFrequency> importFrequency = new AtomicReference<>(ImportFrequency.UNKNOWN);

是否可以在此方案中实现AtomicReference?仅限EnumType的类型属性是ORDINALSTRING,分别用于类型属性或整数,类型属性或字符串。

0 个答案:

没有答案