首页 > 解决方案 > 将 Java 类型映射到数据库类型

问题描述

我想从我的 Java 代码中手动设置列的类型(尚未创建表)。String应该是text数据库中的类型,并且LocalDate应该是date类型。没有映射的 AfaikString将被映射为VARCHAR类型。

实体:

@Entity
@Table(schema = "subscribers_service", name = "subscribers")
public class Subscriber {

    @Id
    @Column(name = "email")
    private String email;

    @Column(name = "subscription_date")
    private LocalDate dateOfSubscription;

}

所以我想要这样:

    @Id
    @Column(name = "email")
    @DatabaseType(name = "text")
    private String email;

我正在使用 PotsgreSQL。是否可以?或者我应该手动创建具有所需列类型的数据库?

标签: javaspringspring-data-jpa

解决方案


您可以使用注释通过 Java 代码设置数据库列类型@Column

您所要做的就是添加columnDefinition到注释中

例子

@Column(name = "email", columnDefinition = "text")

@Column(name = "subscription_date", columnDefinition = "date")

希望这会有所帮助。


推荐阅读