首页 文章

移动到Hibernate 5.2后缺少表错误

提问于
浏览
1

将hibernate升级到版本5.2.10后,我的Spring Boot(1.4)应用程序出现以下错误:

Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing table [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

但它没有帮助 . 任何想法如何解决问题?

1 回答

  • 0

    PhysicalNamingStrategyStandardImpl 什么也没做 . 您可以扩展该策略并将表名称转换为小写 .

    public class LowerCasePhysicalNamingStrategy extends PhysicalNamingStrategyStandardImpl {
    
        @Override
        public Identifier toPhysicalTableName(Identifier name, JdbcEnvironment context) {
            return context.getIdentifierHelper()
                    .toIdentifier(name.getText().toLowerCase());
        }
    
    }
    

    可能需要更改此策略,如果除了转换为小写之外还需要其他内容 .

相关问题