JPA查询被转换

JPA查询被转换,jpa,spring-boot,Jpa,Spring Boot,我有一个存储库方法,比如 @Query("from Application app where app.id.hostId = :hostId") List<Application> getApplicationsByApplicationId(@Param("hostId") String hostId); 在处理链的某个地方,hostIdstring被转换为host\u id,因此我得到了如下错误 Caused by: com.mysql.jdbc.exceptions.jdb

我有一个存储库方法,比如

@Query("from Application app where app.id.hostId = :hostId")
List<Application> getApplicationsByApplicationId(@Param("hostId") String hostId);
在处理链的某个地方,
hostId
string被转换为
host\u id
,因此我得到了如下错误

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'application0_.host_id' in 'field list'.
我试图将现有的hibernate/JPA层混合到SpringBootJPA中。 任何指点都将不胜感激

使用:

@Column(name = "hostid")

请注意,所有都是小写。

这是由Hibernate命名策略引起的。 默认策略将Java中的camel case转换为数据库中的uu

如果不希望出现这种行为,请使用JPA默认值。您可以在application.properties中进行设置:

spring.jpa.hibernate.naming_strategy: org.hibernate.cfg.EJB3NamingStrategy

尝试为组合类添加
@Access(AccessType.FIELD)
注释。并使
复合
类不在内部。另外,如何在表中命名列
host\u id
。DB中的列在表中命名为
hostid
。可能是双精度的
spring.jpa.hibernate.naming_strategy: org.hibernate.cfg.EJB3NamingStrategy