繁体   English   中英

当 Java 和 Hibernate 中的列是数组类型时,表创建失败

[英]Table creation failing when column is array type in Java and Hibernate

在使用list-array类型创建表时,我在 SQL 语句中出现语法错误。

Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "create table vehicle (id  serial not null, vehicle_types varchar[[*]] primary key (id))"; expected "(, FOR, UNSIGNED, INVISIBLE, VISIBLE, NOT, NULL, AS, DEFAULT, GENERATED, ON, NOT, NULL, AUTO_INCREMENT, BIGSERIAL, SERIAL, IDENTITY, NULL_TO_DEFAULT, SEQUENCE, SELECTIVITY, COMMENT, CONSTRAINT, PRIMARY, UNIQUE, NOT, NULL, CHECK, REFERENCES, ,, )"; SQL statement:
create table vehicle (id  serial not null,  vehicle_types varchar[], primary key (id)) [42001-199]

我的表定义如下所示。

import com.vladmihalcea.hibernate.type.array.ListArrayType;

@Entity
@Table(name = "vehicle")
@EqualsAndHashCode(of = {"id", "created"})
@Getter
@Setter
@TypeDef(
        name = "list-array",
        typeClass = ListArrayType.class
)
public class Vehicle {

   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   @JsonIgnore
   private Integer id;

   @Type(type = "list-array")
   @Column(
        name = "vehicle_types",
        columnDefinition = "varchar[]"
   )
   private List<String> vehicleTypes;

}

我有以下依赖

<dependency>
    <groupId>com.vladmihalcea</groupId>
    <artifactId>hibernate-types-52</artifactId>
    <version>2.10.0</version>
</dependency>

我错过了什么?

修好了

columnDefinitionvarchar[]更改为array

@Type(type = "list-array")
@Column(
   name = "vehicle_types",
   columnDefinition = "array"
)
private List<String> vehicleTypes;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM