4

我们将 Envers 与 Oracle 和 MySQL 一起使用,没有任何问题。我们现在正在尝试 PostgreSQL,但我们遇到的问题是审计表是使用REVTYPEtype 列创建的TINYINT

TINYINTPostgreSQL 不支持。

有没有办法改变类型REVTYPE

例子:

create table AUD_SomeTable (
  dbId bigint not null,
  ...
  REV integer not null,
  REVTYPE tinyint,
  primary key (dbId, REV)
);

编辑

问题已解决:我忘记了更改 Hibernate 方言。

4

2 回答 2

3

您应该测试这是否真的是 Envers 问题或 Hibernate 问题。byte type尝试仅使用休眠将实体与属性映射。如果它试图生成一个tinyint列,那将是一个 Hibernate 问题。

于 2012-02-22T14:33:24.650 回答
1

我不了解 Envers,但您可以创建一个新的域类型

CREATE DOMAIN "tinyint"
  AS smallint;

您可以添加约束来检查例如正值。

于 2012-02-22T14:08:07.637 回答