我已经整整一天都在试图了解正在发生的事情并找到解决办法。我有一个JPA映射的实体,除其他属性外,还具有以下特征:
@Entity
@Table(name = "xyz")
data class XYZ(
...
@Column(name = "status", nulable = false)
@Enumerated(EnumType.STRING)
private var initialStatus: XYZStatus,
...
) {
@Transient
var status: XYZStatus = initialStatus
get() = initialStatus
set(nextStatus) {
...
initialStatus = nextStatus
field = nextStatus
}
}
自从首次创建此类以来,这种方法一直有效永远。现在的情况是,每当我在Intellij IDEA(最终版本2018.2)上运行集成测试时,它们都会失败,因为无法创建Spring上下文。错误是:Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: model.XYZ column: status (should be mapped with insert="false" update="false")
。
奇怪的部分:仅在我的机器上才发生此错误,仅当从IDE内部运行测试时才发生。如果我在命令行上通过Maven运行测试,那就可以了。我已经尝试将字段名称从status
更改为其他名称,并且错误只是更改了我为变量指定的“其他名称”。
我已经删除并再次克隆了我的仓库。已经删除并重新安装了Intellij。我真的不知道该错误的根源是什么。有什么想法吗?
谢谢!