@Entity
public class MyEntity {
@Column(insertable = false,
updatable = true,
columnDefinition = "TIMESTAMP default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP")
private LocalDateTime modification;
}
通常,时间戳仅应由mysql管理,而不应由使用该实体的应用程序管理。因此insertable=false
。
但是在junit
测试期间,我想强行将修改时间戳记更改为固定值。只有insertable=true
才有可能。
问题:是否只能在测试期间更改属性?
答案 0 :(得分:2)
您可以在test / resources / META-INF目录中创建orm.xml并使用XML覆盖映射。
XML中的标签与注释相同,但在kebab-case中不是驼峰式。
请在此处找到整个规格: Google Sheets API
@Gimby是正确的orm.xml是可加的,因此您可以覆盖所需的内容:
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence/orm">
<package>your package here</package>
<entity class="MyEntity">
<attributes>
<basic name="modification">
<column insertable="true" />
</basic>
</attributes>
</entity>
</entity-mappings>