gpt4 book ai didi

java - Spring JpaRepository 使用非常规命名从属性中查找实体

转载 作者:搜寻专家 更新时间:2023-11-01 01:59:28 25 4
gpt4 key购买 nike

下面的在Spring 1.5.10.RELEASE可以用,但是在Spring 2.0.7.RELEASE就不行了,不知道为什么:

实体

@Entity
@Table(name = "locations")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Location {
// ... unimportant stuff
@Column(name = "c_locations_id")
private String cLocationId;
// ... more unimportant stuff
}

存储库(又名“问题”)

@Repository
public interface LocationRepository extends JpaRepository<Location, Long>, JpaSpecificationExecutor<Location> {
Location findByCLocationId(String cLocationId);
List<Location> findAllByOrderByCLocationIdAsc();
}

上面代码在 Spring 2.0.7.RELEASE 下出现的错误是

java.lang.IllegalArgumentException: Unable to locate Attribute with the the given name [CLocationId] on this ManagedType.

由于其他情况我无法更改属性的名称,因此我尝试了存储库中方法的不同变体:

  • findBycLocationId - 未找到 Location 类型的属性 orderBycLocationIdAsc!
  • findByClocationId - 找不到类型 Location 的属性 clocationId!您指的是“CLocationId”、“cLocationId”吗?
  • findByCLocationId - 无法在此 ManagedType 上找到具有给定名称 [CLocationId] 的属性

它想要什么?!我只是想升级框架... 😭

最佳答案

你可以像这样使用方法名:

位置 findByC_Location_Id(String cLocationId);

this有助于引用

关于java - Spring JpaRepository 使用非常规命名从属性中查找实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54593678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com