将Java类型映射到数据库类型

时间:2020-10-14 07:57:49

标签: java spring spring-data-jpa

我想通过Java代码手动设置列的类型(尚未创建表)。 String在数据库中应该是text类型,而LocalDate应该是date类型。 Afaik没有映射,String将被映射为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。可能吗?还是我应该手动创建具有所需列类型的数据库?

1 个答案:

答案 0 :(得分:1)

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

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

示例

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

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

希望这很有帮助。