重命名休眠Envers ID和时间戳列

时间:2018-12-13 11:30:23

标签: java sql hibernate jpa

我正在尝试在应用程序的审核中添加自定义列。

我有一个自定义的RevisionEntity:

from rest_framework.response import Response
from rest_framework import status, viewsets
...

@action(detail=True, methods=['put'], name='Change Status',  url_path='change-status', url_name='change_status')
def status(self, request, pk):
    try:
       obj = MyModel.objects.get(pk=pk)
       changed_status = obj.change_status()
       return Response({'success':True, "status_changed": changed_status}, status=status.HTTP_200_OK)
    except MyModel.DoesNotExists:
       return Response({'success':False}, status=status.HTTP_400_BAD_REQUEST)

在持久化数据时,休眠执行将以下查询发送到数据库:

@Entity
@Table(name = "REVINFO")
@RevisionEntity(UserRevisionListener.class)
public class UserRevEntity extends DefaultRevisionEntity {
    private String username;

    public String getUsername() { return username; }

    public void setUsername(String username) { this.username = username; }
}

问题是REVINFO表没有id和timestamp字段,并且出现错误

  

SQLSyntaxErrorException:ORA-00904:“ ID”:无效的标识符

REVINTO表如下:

enter image description here

我可以告诉冬眠将id和时间戳分别映射到REV和REVTSTMP列吗?

请帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

尝试一下。

randomusers