当前位置: 首页 > 面试题库 >

如何使用包含关键字的属性创建Spring JPA存储库findBy查询?

公西财
2023-03-14
问题内容

这是我的问题的简化示例。我有这个存储库和实体类。

public interface ThingRepository extends JpaRepository<ThingEntity, Long> {
    ThingEntity findByFooInAndBar(String fooIn, String bar);
}

@Entity
public class ThingEntity {
    @Column(name="FOO_IN", nullable=false, length=1)
    private String fooIn;

    public String getFooIn() {
        return fooIn;
    }

    public setFooIn(String fooIn) {
        this.fooIn = fooIn;
    }

    /* not including bar property for brevity's sake */
}

Spring抛出以下异常。

org.springframework.data.mapping.PropertyReferenceException: No property foo found for type ThingEntity!

看起来Spring正在采用该方法,findByFooInAndBar并认为这foo是我的属性名称,并且in是用于匹配集合中值的关键字。

如何理解属性名称fooIn不是foo


问题答案:

为了克服这个问题,我使用@Query注释手动定义了查询。如果其他人找到不需要手动查询的解决方案,我会很乐意接受。

public interface ThingRepository extends JpaRepository<ThingEntity, Long> {

    @Query("SELECT t FROM Thing t WHERE t.fooIn = ?1 AND t.bar = ?2")
    ThingEntity findByFooInAndBar(String fooIn, String bar);
}


 类似资料:
  • 背景和问题 我们使用包含元数据的文件来描述存储在csv文件中的数据。元数据文件包含最初从中导出数据的表的结构。我们使用jooq(pro版本)为临时表生成create语句,其中加载了csv文件中的数据。生成的ddl随后由pl/sql包执行。 这通常可以正常工作,但oracle原始字段存在问题。我不知道如何创建包含oracle RAW的表,因为SQLDataType不包含RAW。 简化的可运行示例 这

  • 我正在检查是否存在一个对象属性,该属性带有一个包含所讨论的属性名的变量。 这是,因为它正在查找,但我希望它检查

  • 问题内容: 我已经完成了连接数据库(MySQL)的项目。现在,我要将项目导出为jar。但是我不知道如何包括其外部依赖项?在Eclipse中有什么方法可以做到这一点,还是应该为此使用任何脚本? 问题答案: 当你将项目导出为“可运行的jar”(在项目->导出->可运行的jar上单击鼠标右键)时,可以选择将所有依赖项打包到生成的jar中。它还有两种其他方式(请参见屏幕截图)来导出库,请在决定使用哪种打包

  • 问题内容: 我需要创建一个Spring bean,使其门店,,一个HttpServletRequest的对象的属性,这样,因为我需要我可以注入这个bean到其他豆类。 在我看来,这些属性不会随任何URI更改,因此最好将其初始化一次(无论如何,多次传递实例根本不那么昂贵)。 问题是,如何将实例注入配置Bean?我更喜欢基于xml的注入。最可能的是,我们需要注入它作为一个,但我不知道会是什么或者这个对

  • 我成功创建了一个包含1个键和2个值的查找表: 但当我试图将其扩展到4个值时,我发现了一系列错误,我发现条目仅限于2个值! 那么,请,如何对1个键和4个值做类似的事情?我不能通过为第一个映射的第二个参数声明内部map.entry来扩展它。条目,因为在这一点上,第一个字符串不再是唯一的,我是说,映射的所有参数。条目 你们不需要走我走的路。你们可以自由地提供任何解决方案/数据结构,允许我存储和检索3个字

  • 问题内容: 这个问题已经在这里有了答案 : 由于在MySQL中使用保留字作为表或列名而导致的语法错误 (1个答案) 25天前关闭。 我在更新包含HTML数据的MySQL数据时遇到了问题,我不断地修复错误;但是,一旦解决了一个错误,就会产生另一个错误。当前错误如下: 我已经进行了将近3天的Stack Overflow清理工作,但没有任何明确的答案。所以我希望有人能找到这个! 这是我的PHP表单代码: