如何解决如何传递`hibernate.physical_naming_strategy`的内部类
我需要从外部属性设置表名 @Table
。我正在尝试这样做:
@Component
public class TableNameConfiguration {
private String tableName;
@Value("${table.tableName")
public void setTableName(String tableName) {
this.tableName = tableName;
}
@Component
class PhysicalNamingImpl extends PhysicalNamingStrategyStandardImpl {
@Autowired
public PhysicalNamingImpl(){
System.out.println("inner constructor: " + tableName);
}
private static final String TABLE_NAME = "PLACEHOLDER";
@Override
public Identifier toPhysicalTableName(Identifier name,JdbcEnvironment context) {
if (TABLE_NAME.equals(name.toString())) {
return new Identifier(tableName,name.isQuoted());
}
return super.toPhysicalTableName(name,context);
}
}
}
但我不确定如何在设置休眠属性 physial_naming_strategy
时放置内部类。我不断收到错误消息:Nosuchmethodexception class.<init>() PhysicalNamingImpl
properties.put("hibernate.physical_naming_strategy",TableNameConfiguration.PhysicalNamingImpl.class.getName());
我不确定我在这里遗漏了什么,或者是否有任何其他方法可以在休眠属性中提供内部类。
PS:让 PhysicalNamingImpl 成为内部类很重要,这样它才能访问外部类的属性。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。