Spring Snake案例转换不适用于外键列

时间:2017-10-30 09:38:47

标签: java spring hibernate jpa orm

我的实体定义如下:

@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

我原本希望它生成SQL为domain_object_id,但它转换为domainObject_id。我做错了什么?

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

2 个答案:

答案 0 :(得分:1)

尝试使用javax.persistence.JoinColumn

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

通过这种方式,您可以确保该列的名称完全符合您的要求

答案 1 :(得分:0)

由于此属性domainObject_id

,它正在生成private DomainObject domainObject;

如果您期待domain_object_id,请使用private DomainObject domain_object;。由于_id将附加在参数名称的末尾。