java - 使用 JPA 在 Spring Boot 中实现 DAO

标签 java spring-boot jpa entity dao

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

从名称为 ("XYZ","XY") 的数据中选择 *

我无法使用 JPA 在 Spring Boot 中实现以下输入的 DAO 实现。

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

Controller

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

服务方式:

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

repo 接口(interface):

    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;
}

请帮助我实现以下输入。

最佳答案

您的存储库应如下所示:

@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(); 
  }
}

至少是这样的。

关于java - 使用 JPA 在 Spring Boot 中实现 DAO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56594597/

相关文章:

java - Log4j2 的 FailoverAppender 错误 : appender Failover has no parameter that matches element Failovers

java - 尝试使用 Spring Security 自定义失败登录

spring-boot - @RestController 方法似乎默认是事务性的,为什么?

Spring-Boot Elasticseach EntityMapper 无法 Autowiring

java - JPA 多对多关系与额外的枚举列

java - 没有名为 EntityManager 的持久性提供程序

java - 使用 Spring Data JPA 进行 HQL 继承

java - 为什么 Collection 的 .addAll 比手动添加慢?

java - 测量 Servlet 的总网络传输时间

java - Android Bitmap OutOfMemoryError + 游戏如何处理大量图像?