【问题标题】:How can I sort List<Object> CRUD Repository如何对 List<Object> CRUD 存储库进行排序
【发布时间】:2019-10-15 13:16:50
【问题描述】:

我正在尝试为需要 2 种方法的购买构建简单的 REST。第一种方法应显示按日期排序的所有购买。第二个删除指定日期的所有购买我做了一个方法来添加和获取所有购买。现在我被困住了。

@Entity
@Table (name="purchase")
public class Purchase {

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

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

@CreationTimestamp
@Temporal(TemporalType.DATE)
@Column(name="createat")
private Date created;

@Column(name="price")
private BigDecimal price;


@Column(name="currency")
private String currency;
@Repository
public interface PurchaseRepository extends JpaRepository<Purchase, Long> 
{
}

@Service
public class PurchaseService {

@Autowired
private PurchaseRepository purchaseRepository;

public void addPurchase(Purchase purchase) {
    purchaseRepository.save(purchase);
}

public List<Purchase> getAllPurchase() {

    List<Purchase> purchase = new ArrayList<>();
    purchaseRepository.findAll().forEach(purchase::add);
    return purchase;
}
}

@RestController
public class PurchaseController {

@Autowired
private PurchaseService purchaseService;

@PostMapping("/purchase")
public void addPurchase(@RequestBody Purchase purchase) {
    purchaseService.addPurchase(purchase);
}

@RequestMapping("/purchase")
public List<Purchase> getAllTopics() {
    return purchaseService.getAllPurchase();
}
}

我需要什么: 1.按日期排序我的列表的方法 2. 删除指定日期所有购买的方法

【问题讨论】:

    标签: java hibernate spring-boot crud


    【解决方案1】:

    在这些情况下,您可以使用 Spring Data JPA 功能。

    将以下方法添加到 PurchaseRepository:

    1. List&lt;Purchase&gt; findAllByOrderByCreatedAsc();
    2. long deleteByCreated(Date created);

    毕竟,Spring 会根据方法名称生成适当的查询。

    【讨论】:

    • 谢谢,现在第一种方法正在起作用!不幸的是,我不知道如何实现第二个,我的意思是如何让我的控制器工作
    • 如果您觉得有用,请接受答案。
    【解决方案2】:

    我明白了

    long deleteByCreated(Date date);
    @Transactional
    public long deleteAllByDate(Date date){
        return purchaseRepository.deleteByCreated(date);
    }
    @RequestMapping(method=RequestMethod.DELETE, value="/purchasess/{date}")
        public long findAllByCreatedBetween(@DateTimeFormat(pattern="yyyy-MM-dd") 
    @PathVariable  Date date){
            return purchaseService.deleteAllByDate(date);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-02
      相关资源
      最近更新 更多