有什么方法可以让 EclipseLink 将驼峰式大小写转换为下划线?
例如,class MyEntity
=>select * from MY_ENTITY
理想情况下,我可以将一些预先打包的东西作为一个属性放在 persistence.xml 中。
有什么方法可以让 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<properties>
部分中添加这一行:
<property name="eclipselink.session.customizer" value="foo.bar.MySessionCustomizer" />