我设置了 Spring JPA + Envers (PostgreSQL) 并用 @Audited 注释了一些实体类。我添加了我的 revinfo 表,因为我想记录更改来自的帐户:
@Entity(name = "Audit")
@Table(name = "revinfo")
@RevisionEntity(AuditRevisionListener::class)
class AuditRevisionEntity(
@Id
@GeneratedValue
@RevisionNumber
var rev : Int = 0,
@RevisionTimestamp
var timestamp: Long = 0,
var username: String <<< CULPRIT
)
上面的代码被剪断了!但是 - 我重命名username
为user
一切的那一刻崩溃和燃烧。我收到一条神秘信息
错误:字符 33 处的“用户”或附近的语法错误
声明:插入 revinfo(时间戳、用户、rev)值($1、$2、$3)
我的第一个假设是我的类型不匹配,所以我验证了我的 liquibase 设置
<changeSet id="create-revinfo-table" author="me">
<createTable tableName="revinfo">
<column name="rev" type="SERIAL" autoIncrement="true">
<constraints primaryKey="true" primaryKeyName="revinfo_pkey"/>
</column>
<column name="timestamp" type="bigint"/>
<column name="username" type="VARCHAR(255)"/>
</createTable>
</changeSet>
当我重命名username
为 时user
,它再次崩溃并显示上述错误消息。
为什么我不能使用名为user
in的列revinfo
?
还有这些神奇的列名吗?
我在哪里可以找到有关此行为的信息?