将hibernate升级到版本5.2.10后,我的Spring Boot(1.4)应用程序出现以下错误:
引起:org.hibernate.tool.schema.spi.SchemaManagementException:架构验证:缺少表格[abc.DummyPojoClass]
Java类就像:
@Entity
@Table(schema = "abc", name = "DummyPojoClass")
public class DummyPojoClass {
@Column(name = "object_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
private Long objectId;
@Column(name = "name")
@Value
private String name;
}
在数据库表中是abc.dummypojoclass,在Hibernate 4.3上解析表名没有问题。我试图改变app.properties中的命名策略设置:
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
但它没有帮助。任何想法如何解决问题?
答案 0 :(得分:0)
PhysicalNamingStrategyStandardImpl
什么也没做。您可以扩展该策略并将表名转换为小写。
public class LowerCasePhysicalNamingStrategy extends PhysicalNamingStrategyStandardImpl {
@Override
public Identifier toPhysicalTableName(Identifier name, JdbcEnvironment context) {
return context.getIdentifierHelper()
.toIdentifier(name.getText().toLowerCase());
}
}
如果您需要除转换为小写之外的其他内容,您可能需要更改此策略。