【发布时间】:2019-01-24 12:37:52
【问题描述】:
在我的 Java 代码中,我有一个名为 isNegative 的字段,数据库中存在一个类似的列。但是 Hibernate 坚持名称应该是 is_negative,即使使用 @Column 强制名称也是如此。
@Column(name="isNegative")
private boolean isNegative;
错误:
原因:org.hibernate.HibernateException:缺少列: datasource.item 中的 is_negative
Application.properties:
#JPA
spring.data.jpa.repositories.enabled=false
spring.jpa.database=mysql
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
spring.jpa.generate-ddl=true
spring.jpa.open-in-view=true
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
spring.jpa.hibernate.ddl-auto=validate
spring.jpa.hibernate.use-new-id-generator-mappings=false
spring.jpa.properties.hibernate.event.merge.entity_copy_observer=allow
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate5.SpringSessionContext
【问题讨论】:
-
如果您同时使用 Hibernate 和 Spring Framework,您能否显示文件
hibernate.cfg.xml或application.properties,或者如果您使用 Hibernate 作为 JPA 实现,您能否显示文件persistence.xml? -
@Arnaud 是的,完全是;但问题是缓解措施不起作用。我将命名策略设置为physicalNamingStrategyStandard;但它不起作用。解决方法(编写@column(name="isnegative"))有效;但是对于我所有的列名来说这样做太多了。
标签: java spring hibernate hibernate-mapping naming