gpt4 book ai didi

java - 使用动态表达式查找具体类(其中将类实例传递给 DAO)

转载 作者:行者123 更新时间:2023-12-01 16:11:41 25 4
gpt4 key购买 nike

我有这个方法签名:

public int nrOfEntities(Class<? extends MailConfirmation> clazz, User user, String email)

我希望 nrOfEntities 返回以下实体的数量:

  • 属于具体类 clazz
  • 如果用户!= null,则有匹配的用户
  • 如果用户 == null,则有匹配的电子邮件

这是我遇到问题的类匹配。我尝试了一些语句,但没有成功。

最佳答案

clazz 是否可以有不应计算在内的子类型?

如果没有,在 clazz 上创建查询是否还不够?

Criteria criteria = session.createCriteria(clazz);
if (user == null) {
criteria.add(Restrictions.eq("email", email);
} else {
criteria.add(Restrictions.eq("user", user);
}
int result = (Integer) criteria.setProjection(Projections.rowCount()).uniqueResult();

现在我猜测您的映射看起来如何(有“电子邮件”和“用户”属性)。

如果这不起作用,我知道有一个名为“class”的伪属性,至少在 HQL 中是这样。也许你可以尝试一下。

关于java - 使用动态表达式查找具体类(其中将类实例传递给 DAO),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/980136/

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