我有这样的实体定义:

@ManyToOne
private DomainObject domainObject;


运行代码时出现此错误:

2017-10-30 14:58:52,517  WARN rnate.engine.jdbc.spi.SqlExceptionHelper: 127 - SQL Error: 1054, SQLState: 42S22
2017-10-30 14:58:52,520 ERROR rnate.engine.jdbc.spi.SqlExceptionHelper: 129 - Unknown column 'domainObject_id' in 'field list'


我的表FK列名为domain_object_id

我的application.yml中有这个:

properties:
  hibernate:
    naming:
        strategy: org.springframework.boot.orm.jpa.hibernate.SpringNamingStrategy


我期望它以domain_object_id的形式生成SQL,但是它将转换为domainObject_id。我究竟做错了什么?

其他非外键列正在转换正常。问题仅在于外键列。

最佳答案

尝试使用javax.persistence.JoinColumn

@ManyToOne
JoinColumn(name="domain_object_id")
private DomainObject domainObject;


这样,您可以确保该列将完全按照您的名称命名

09-11 19:54