更改JPA生成的表列的数据类型

问题描述 投票:1回答:1
  1. 是否可以更改使用JPA生成的表的列长度?我想增加这个领域的长度
@NotNull
@Column(name = "ShortDescription", length = 65)
private String shortDescription;
  1. 例如。如果我将长度更改为80并重新部署并且列将更新?
java jpa eclipselink
1个回答
1
投票

对于EclipseLink

EclipseLink不支持自动更新现有列。您必须使用DDL查询手动更新它,或者您可以根据您的要求使用以下选项之一。

create-tables:EclipseLink将尝试为每个表执行CREATE TABLE SQL。如果表已存在,则EclipseLink将遵循特定数据库和JDBC驱动程序组合的默认行为(当为现有表发出CREATE TABLE SQL时)。在大多数情况下,抛出异常并且不创建表;将使用现有表。然后EclipseLink将继续下一个语句。

create-or-extend-tables:EclipseLink将尝试创建表。如果表存在,EclipseLink将添加任何缺少的列。

drop-and-create-tables:EclipseLink将尝试DROP所有表,然后创建所有表。如果遇到任何问题。 EclipseLink将遵循特定数据库和特定JDBC驱动程序组合的默认行为,然后继续下一个语句。如果架构经常更改,或者在需要清除现有数据的测试期间,这在开发中很有用。

none:默认,没有生成ddl;没有生成架构。

persistence.xml文件中添加此属性。

对于Hibernate

createcreate-dropvalidateupdate基本上影响架构工具管理在启动时如何操作数据库架构。

您可以将update值用于hibernate.hbm2ddl.auto,以便在应用程序启动时更新列长度。在persistence.xml文件中添加此属性。

© www.soinside.com 2019 - 2024. All rights reserved.