[英]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>
我错过了什么?
修好了
将columnDefinition
从varchar[]
更改为array
@Type(type = "list-array")
@Column(
name = "vehicle_types",
columnDefinition = "array"
)
private List<String> vehicleTypes;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.