JPA身份生成策略

JPA身份生成策略,jpa,eclipselink,Jpa,Eclipselink,@GeneratedValue(策略)序列的默认名称是什么= GenerationType.SEQUENCE)我可以强制所有实体使用不同的 序列,并为该序列提供自定义名称生成器 是否可以以编程方式为提供方法 @GeneratedValue(strategy=GenerationType.AUTO)在 @GeneratedValue(策略=GenerationType.IDENTITY)和 @GeneratedValue(策略=GenerationType.SEQUENCE)除了 自定义orm.x

@GeneratedValue(策略)序列的默认名称是什么=
GenerationType.SEQUENCE)
我可以强制所有实体使用不同的 序列,并为该序列提供自定义名称生成器

  • 是否可以以编程方式为提供方法
    @GeneratedValue(strategy=GenerationType.AUTO)
    @GeneratedValue(策略=GenerationType.IDENTITY)
    @GeneratedValue(策略=GenerationType.SEQUENCE)
    除了 自定义orm.xml文件

  • 背景:我正在将我的应用程序连接到另一个应用程序数据库,在数据库方面没有什么可以更改的


    此应用程序可以使用SQL Server或PostgreSQL。在SQL Server模式下,使用
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    。我当前的代码库正在使用它。现在我必须提供对postgresql的支持,其中使用序列生成的标识。我想用orm.xml覆盖它。所有序列都被命名(table_name)_seq,因此自动生成名称将节省大量样板xml。

    AUTO由JPA提供程序定义。你无法控制它。选择AUTO将控制传递给provider.orm.xml是您的JPA友好的覆盖细节的方法,但是您可以使用EclipseLink定制器,如下所示:对于定制器。我没有一个在描述符上设置序列的公开示例,但是描述符javadoc可以帮助您实现这一点,或者您可以向每个类添加命名的序列,并注册特定于平台的序列,如图所示。谢谢Chris,这是值得研究的。