java - 解释 JPA Criteria API From 类及其类型参数的含义
问题描述
类javax.persistence.criteria.From的目的是什么,它的类型参数Z
和X
代表什么?
文档根本不清楚。
在看到javax.persistence.criteria.Root类型具有以下定义后,我变得更加困惑:
public interface Root<X> extends From<X,X>
解决方案
它是一个通用接口:javax.persistence.criteria.Join
并javax.persistence.criteria.Root
在调用以下方法之一时允许一致性:
javax.persistence.criteria.Join#getParent
javax.persistence.criteria.From#getCorrelationParent
让我们尝试使用javax.persistence.criteria.Join#getParent
When You calljavax.persistence.criteria.Join#getParent
结果可以是另一个 Join 或 Root 来解释,两者的通用接口是javax.persistence.criteria.From
参见示例:
Root<User> user = query.from(User.class);
Join<User, Account> account = user.join(User_.account);
Join<Account, AccountRole> accountRole = account.join(Account_.accountRoles);
然后
From<?, User> root = account.getParent();// here we have Root<User> extends From<User, User>
From<?, Account> join = accountRole.getParent();// here we have Join<User, Account> extends From<User, Account>
正如您在上面的示例中看到的那样,Z 和 X 代表连接的左侧和右侧类型。
推荐阅读
- qt - QEventLoop 仅等待本地事件而不是主循环事件
- python - 如何循环浏览熊猫数据框列表
- javascript - Webpack 配置不接受配置模式选项
- amazon-web-services - AWS SAM 模板,无法设置 KmsKeyArn
- powershell - 导出前过滤对象数据-CSV
- scala - 过滤器循环内的 Scala 函数不起作用(类型不匹配)
- python - 从 POST 请求下载文件
- excel - Excel VBA 转置表
- tableau-api - Tableau Server 客户端 - 嵌入式仪表板图像未加载到服务器
- ios - 是否有可能知道用户是否拒绝了 iOS 上的蓝牙配对?