找不到类型或用户缺乏权限:TEXT

问题描述 投票:0回答:1

我正在尝试使用 hsqldb-2.5.1 从 Spring 应用程序进行连接。域对象之一的字段类型为文本[]。因此,在通过 hsql 在 PUBLIC 模式中创建该表时,我收到此异常: “未找到类型或用户缺乏权限:TEXT”

我尝试使用数据源 url 进行“sql.syntax_pgs=true”,但得到了不同的异常“意外的标记 [”。 不知道还可以尝试用什么方法来解决这个问题。

示例 ddl 命令:

create table PUBLIC.abcs (id bigint not null, createdBy varchar(255), createdDate timestamp, lastModifiedBy varchar(255), lastModifiedDate timestamp, columnName varchar(35) not null, types text[] not null, methId varchar(255), paraValues text[], tables int8[] not null, prId bigint not null, primary key (id))

示例域对象:

@Entity
@Table(name = "abcs")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@Indexed
public class Abc extends LongEntity<Abc> {

    private static final long serialVersionUID = 1L;

    @Column(name = "columnName", length = ColumnName.MAX_DB_LENGTH, nullable = false)
    private String columnName;

    @Column(name = "tables", nullable = false, columnDefinition = "int8[]")
    @Type(type = "com.pkg.GenericArrayUserType", parameters = {
            @Parameter(name = "type", value = "bigint")
    })
    private Long[] abcIds;

    @Column(name = "types", nullable = false, columnDefinition = "text[]")
    @Type(type = "com.pkg.GenericArrayUserType", parameters = {
            @Parameter(name = "type", value = "text")
    })
    private String[] daTypes;
}
java spring hsqldb spring-jdbc
1个回答
0
投票

如果int8[]或text[]类型的列是数组,则使用关键字ARRAY。

create table PUBLIC.abcs 
  (id bigint not null, createdBy varchar(255), createdDate timestamp,
  lastModifiedBy varchar(255), lastModifiedDate timestamp, 
  columnName varchar(35) not null, types text ARRAY not null, 
  methId varchar(255), paraValues text ARRAY, tables int8 ARRAY not null,
  prId bigint not null,
  primary key (id))
© www.soinside.com 2019 - 2024. All rights reserved.