Package io.leandev.appfuse.entity
package io.leandev.appfuse.entity
Entity 工具模組
提供 Entity 相關的介面和工具,協助建構具有狀態管理功能的實體。
模組內容
Stateful- 狀態感知介面,標記具有狀態欄位的 EntityStatusTransition- 狀態流轉工具,驗證狀態變更合法性
設計原則
此模組遵循「介面 + 工具」的設計原則:
- 介面:定義契約,不強制實作方式
- 工具:提供輔助方法,不綁定特定架構
使用範例
- 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; }
}
- 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: