# est-spi-persistence **Repository Path**: est-spi/persistence ## Basic Information - **Project Name**: est-spi-persistence - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-15 - **Last Updated**: 2026-03-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EST SPI Persistence [English Version](README.en.md) ## EST SPI 持久化模块 est-spi-persistence 是 EST SPI 框架的持久化模块,提供数据仓储和事务管理功能。 ### 核心功能 #### Entity - 实体接口 定义实体的接口,包含ID标识。 #### Repository - 仓储接口 定义仓储接口,包含基本的增删改查操作。 #### Query - 查询接口 定义查询接口。 #### Transaction - 事务接口 定义事务接口,包含开始、提交、回滚操作。 #### TransactionException - 事务异常 事务操作的异常类。 #### InMemoryRepository - 内存仓储实现 基于内存的简单仓储实现。 #### InMemoryTransaction - 内存事务实现 基于内存的简单事务实现。 ### 快速开始 #### 创建仓储 ```java import ltd.idcu.est.spi.persistence.InMemoryRepository; import ltd.idcu.est.spi.persistence.Repository; public class Example { public static void main(String[] args) { Repository repository = new InMemoryRepository<>(); // 使用 repository... } static class User implements Entity { private Long id; private String name; @Override public Long getId() { return id; } @Override public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } } ``` #### 保存实体 ```java import ltd.idcu.est.spi.persistence.Repository; public class Example { public static void main(String[] args) { Repository repository = ...; User user = new User(); user.setName("张三"); user = repository.save(user); System.out.println("Saved user: " + user.getId()); } } ``` #### 查询实体 ```java import ltd.idcu.est.spi.persistence.Repository; public class Example { public static void main(String[] args) { Repository repository = ...; User user = repository.findById(1L).orElse(null); System.out.println("Found user: " + user); Iterable users = repository.findAll(); users.forEach(u -> System.out.println(u.getName())); } } ``` #### 删除实体 ```java import ltd.idcu.est.spi.persistence.Repository; public class Example { public static void main(String[] args) { Repository repository = ...; repository.deleteById(1L); System.out.println("Deleted user with id: 1"); repository.deleteAll(); System.out.println("All users deleted"); } } ``` #### 使用事务 ```java import ltd.idcu.est.spi.persistence.InMemoryTransaction; import ltd.idcu.est.spi.persistence.Transaction; public class Example { public static void main(String[] args) { Transaction transaction = new InMemoryTransaction(); try { transaction.begin(); Repository repository = ...; User user = new User(); user.setName("张三"); repository.save(user); transaction.commit(); System.out.println("Transaction committed"); } catch (Exception e) { transaction.rollback(); System.out.println("Transaction rolled back"); } } } ``` ### Maven 依赖 ```xml ltd.idcu.est.spi est-spi-persistence 1.0.0 ``` ### 许可证 MIT License