代码之家  ›  专栏  ›  技术社区  ›  Phate

未找到类型<entityName>的属性<method name>

  •  1
  • Phate  · 技术社区  · 6 年前

    我有以下实体:

    @Entity
    @Table(name = "MY_TABLE")
    @Data
    public class MyTable implements java.io.Serializable {
    
    private static final long serialVersionUID = 3879471087851341216L;
    
    @Id
    @Column(name = "MY_ID")
    private BigInteger myId;
    
    @Column(name = "ANOTHER_COL")
    private String anotherColumn;
    

    然后创建存储库:

    @Repository
    public interface MyTableRepository extends JpaRepository<MyTable, BigInteger> {
    
    @Query(name = "select count(*) from MyTable where ...")
    public Long getCountOf(@Param("myId") BigInteger myId);
    

    但一开始我就知道:

    找不到MyTable类型的getCountOf属性

    我做错什么了?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Benoit    6 年前

    我怀疑该方法的命名误导了spring jpa。

    另外,spring data可以自动生成count查询,只要遵循正确的命名约定,就不需要提供它:

    @Repository
    public interface MyTableRepository extends JpaRepository<MyTable, BigInteger> {
    
        long countByMyId(BigInteger myId);
    }