繁体   English   中英

如何使用JPA查询方法从表中选择两列的所有数据

[英]How to select all the data of two columns from a table using JPA query method

我想在我的Repository接口中添加以下SQL查询的方法:

SELECT ID, NAME  FROM TABLE_NAME

这个SQL查询可以正常工作,但是我想将它编写为JPA查询方法,我已经尝试了很多方法,但是没有使其正常工作,请帮助我。

以下是我尝试过但没有成功的方法:

findAllByIdName(){}
findAllByIdAndName(){}
findByIdName(){}
findByIdAndName(){}

首先创建一个结果类:

package com.example;

public class ResultClass{

  private Long id;
  private String name;

  public ResultCalss(Long id, String name){
     // set
  }
}

然后使用自定义@Query:

@Query("select new com.example.ResultClass(e.id, e.name) from MyEntity e")
public List<ResultClass> findIdsAndNames();

只需使用基于接口或基于类的投影即可

public interface IdAndName {
    Long getId();
    String getName();
}

public interface MyRepo extends CrudRepository<MyEntity, Long> {
    List<IdAndName> findBy();
}

更多信息

我有类似的实现。 为此需要自定义查询。

例如-

@Query("SELECT usr.id, usr.name FROM User usr")
public List<User> findIdsAndNames();

而User类是

@Entity
@Table(name="t_user")
public class User{

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="id", nullable = false)
    private Long id;

    @Column(name="name")
    private String name;
............
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM