gpt4 book ai didi

jpa-2.0 - 标准 API : can I access a given alias by its name

转载 作者:行者123 更新时间:2023-12-04 04:43:08 26 4
gpt4 key购买 nike

Criteria API 是否可以通过 Root 对象访问给定的别名?

我定义了一个 Join 并给了它别名 “铅” :

final Root<Project> project = cq.from(Project.class);
project.join(Project_.lead).alias("lead");

我怎样才能在仅给定 Root 和别名的情况下访问该 Join(因为 Root 是我传递的唯一查询句柄)?

我已经尝试通过再次导航来重建 Join,但这似乎破坏了 SQL 语句:
    project.join(Project_.lead) // cannot do this

谢谢

最佳答案

从确实有方法getJoins和 TupleElement 方法 getAlias . Root 实现了它们,因此以下应该起作用:

//TODO: apply generics; argument do not have to be root, but
// something that implements From and TupleElement
private Join findJoin(Root root, String alias) {
Set<Join> joins= root.getJoins();
for (Join join: joins) {
if (alias.equals(join.getAlias())) {
return join;
}
}
throw new IllegalArgumentException("No join for alias:" + alias);
}

关于jpa-2.0 - 标准 API : can I access a given alias by its name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18594757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com