Jpa EclipseLink自定义表和列命名策略

Jpa EclipseLink自定义表和列命名策略,jpa,eclipselink,Jpa,Eclipselink,有没有办法让EclipseLink将驼峰大小写转换成下划线 例如,class MyEntity=>select*from MY_ENTITY 理想情况下,我可以将一些预先打包的东西作为属性放在persistence.xml中。您可以编写一个会话自定义程序来实现这一点。首先,创建一个如下所示的类: public class MySessionCustomizer implements SessionCustomizer { @Override public void customi

有没有办法让EclipseLink将驼峰大小写转换成下划线

例如,
class MyEntity
=>
select*from MY_ENTITY


理想情况下,我可以将一些预先打包的东西作为属性放在persistence.xml中。

您可以编写一个会话自定义程序来实现这一点。首先,创建一个如下所示的类:

public class MySessionCustomizer implements SessionCustomizer {
    @Override
    public void customize(Session session) throws SQLException {
        for (ClassDescriptor descriptor : session.getDescriptors().values()) {
            //Only change the table name for non-embedable entities with no @Table already
            if (!descriptor.getTables().isEmpty() && descriptor.getAlias().equalsIgnoreCase(descriptor.getTableName())) {
                String tableName = convertToUnderscore(descriptor.getTableName());
                descriptor.setTableName(tableName);
                for (IndexDefinition index : descriptor.getTables().get(0).getIndexes()) {
                    index.setTargetTable(tableName);
                }
            }
        }
   }
}
然后,您需要注册此自定义程序。在
部分的persistence.xml中添加此行:

<property name="eclipselink.session.customizer" value="foo.bar.MySessionCustomizer" />