SpringDateJPA查询方法总是不返回任何数据

8i9zcol2  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(433)

我正在创建一个类来存储来自第三方服务的值,我创建了一个基于两个字段组合的唯一键(在创建行时填充),这样一个数据只存储一次,这就是实体类

@Table(name = "HQWrapper")
@Entity
public class HQWrapper {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long hQId;
     //other fields getter setter 
    @Column(unique = true,name="uniqueRef")
    private String uniqueRef;

我想基于这个键uniqueref获取值,所以我在repository类中创建了一个查询方法

@Repository
public interface Repository_HQ extends JpaRepository<HQWrapper, Long>{

    @Query("select h from HQWrapper h where h.uniqueRef= :uniqueRef")
    public Optional<HQWrapper> findByUniqueRef(@Param("uniqueRef") String uniqueRef);}

即使完全相同的查询在数据库中工作,它也总是返回null。我使用的是mysql(为了保密,我更新了名称,没有编译时错误,数据存储正确)

w6lpcovy

w6lpcovy1#

我认为您不需要@query annotation:只需声明如下方法:

public Optional<HQWrapper> findByUniqueRef(String uniqueRef);

这就够了。
在我从事的一个项目中:

@Repository
public interface TagRepository extends JpaRepository<Tag,Long> {

    @Query("FROM Tag t WHERE t.name = :tagName")
    Tag findTagByName(String tagName);
}

试试这个格式。

相关问题