首页 > 解决方案 > 如何在 Hibernate 中为特定的数据库行更改添加侦听器?

问题描述

在此处输入图像描述

我正在开发一个食品订购应用程序,如图所示 user1 将进行付款和订购,然后调用 API/waitForStatus/orderid来获得它的确认,只有在 Payment Provider 向我们确认后才会返回。

支付提供商将使用 API 将表格更新为拒绝或确认/confirmOrder/orderid

我的问题是如何将侦听器添加到特定的行和列。要知道提供者何时更新状态

这是我的实体类

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

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

    
    @Column(name = "STATUS")
    private String status;
}

这是我的 JPA 存储库类

@Repository
public interface OrderRepository extends JpaRepository<Order, Long> {

    Order getOrderById(Long id);

}

这是我的服务类

@Service
public class OrderDomainService implements IOrderDomainService {
    private final OrderRepository orderRepository;

    public OrderDomainService(OrderRepository orderRepository) {
        this.orderRepository = orderRepository;
    }

   @Override
   public UserOrder getOrderById(Long orderId) {
         return orderRepository.getOrderById(Long id)
   }
   
   @Override
   public UserOrder waitForStatusCongfirmation(Long orderId) {
        
        //<-------------How to handle here
   }

}

让我知道如何监听特定行的变化,谢谢。

标签: javaspring-boothibernate

解决方案


有一个很棒的工具叫做 Debezium,你可以用它来监听任何数据库的变化:https ://debezium.io/


推荐阅读