Package io.leandev.appfuse.entity


package io.leandev.appfuse.entity

Entity 工具模組

提供 Entity 相關的介面和工具,協助建構具有狀態管理功能的實體。

模組內容

  • Stateful - 狀態感知介面,標記具有狀態欄位的 Entity
  • StatusTransition - 狀態流轉工具,驗證狀態變更合法性

設計原則

此模組遵循「介面 + 工具」的設計原則:

  • 介面:定義契約,不強制實作方式
  • 工具:提供輔助方法,不綁定特定架構

使用範例

  1. Entity 實作 Stateful 介面:
@Entity
public class Order implements Stateful<OrderStatus> {

    @Enumerated(EnumType.STRING)
    private OrderStatus status = OrderStatus.PENDING;

    @Override
    public OrderStatus getStatus() { return status; }

    @Override
    public void setStatus(OrderStatus status) { this.status = status; }
}
  1. Service 層使用 StatusTransition 驗證:
public Order updateStatus(String id, OrderStatus newStatus) {
    Order order = repository.findById(id).orElseThrow(...);

    StatusTransition.validate(
        order.getStatus(),
        newStatus,
        OrderStatus::canTransitionTo,
        "Order"
    );

    order.setStatus(newStatus);
    return repository.save(order);
}
See Also:
  • Class
    Description
    Stateful<S extends Enum<S>>
    狀態感知介面
    狀態流轉工具類