使用JPA在Spring Boot中实现DAO

时间:2019-06-14 08:46:03

标签: java spring-boot jpa entity dao

我正在使用JPA在Spring Boot中使用In运算符编写查询

select * from data where name in ("XYZ","XY")

在JPA的春季启动中,我无法为以下输入实现DAO实现。

 {"name":["XYZ","XY"]}

控制器

@PostMapping("/embdata/dto/name")
public List getByBatchIdsWithDTO(@RequestBody EmbDataDTO dto){
    return service.getBatchIds(dto);
}

服务方法:

    List<Data> obj=repo.findBybatchID(List<String> name)

回购接口:

    List<Data> findByBatchIdIn(List wageId);

我的实体课程

@Entity
@Data
@Table(name="data")
public class Data{

    @Id @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="id")
    int id;

    @Column(name="name")
    String name;

    @Column(name="address")
    String address;
}

我的DTO课程:

@Data
public class EmbDataDTO {
   private int id;
   private String name;
   private String address;
}

请帮助我实现以下输入。

1 个答案:

答案 0 :(得分:0)

您的回购应如下所示:

@Repository
@Transactional
class YourRepo {
  List<Data> findByBatchIdIn(List wageId) {
    Query q = entityManager.createQuery("select * from data where name in (:list)");
    q.setListParameter("list", wageId); 
    return q.execute(); 
  }
}

至少是这样的。