如何获取Skyve实例中的全部客户列表?优先采用Skyve API实现
获取Skyve实例客户列表的Skyve API实现方案
直接通过Skyve的持久化API查询系统内置的SecurityUser实体,就能替代直接操作数据库表的方案,实现去重的客户列表获取,示例代码如下:
import org.skyve.domain.types.Conversation; import org.skyve.persistence.Query; import org.skyve.persistence.Persistence; import org.skyve.web.WebContext; import java.util.List; // Web环境下获取持久化实例 Conversation conversation = WebContext.getConversation(); Persistence persistence = conversation.getPersistence(); // 构建SecurityUser实体的查询 Query query = persistence.newQuery(org.skyve.domain.user.SecurityUser.MODULE_NAME, org.skyve.domain.user.SecurityUser.DOCUMENT_NAME); // 指定返回bizCustomer字段并开启去重 query.getProjection().add(org.skyve.domain.user.SecurityUser.bizCustomerPropertyName); query.setDistinct(true); // 执行查询得到客户列表 List<String> customerList = query.beanResults(String.class);
补充说明:
- 如果是在非Web环境(比如后台定时任务),可以直接通过
Persistence.get()获取持久化实例,无需依赖WebContext。 - 该方式完全遵循Skyve的架构规范,避免了直接操作底层数据库表,适配Skyve的版本迭代和多数据库支持特性。
内容的提问来源于stack exchange,提问作者Mat
相关产品推荐
相关产品推荐

