gpt4 book ai didi

java - JPA 相当于 Hibernate NamedQuery 的 setCharacter(..)、setDate(..) 等...?

转载 作者:行者123 更新时间:2023-12-02 11:38:17 24 4
gpt4 key购买 nike

我想在 JPA 中设置日期和字符。 Hibernate中有一些特殊的方法如下:

Query q = session.getNamedQuery(namedQuery);
q.setDate(0, (Date) (params[i]));
q.setCharacter(1, params[i]);
q.executeUpdate();

JPA 中是否有 setCharacter() 之类的内容?

我知道有setParameter()Date,但我不知道如何用Character来做到这一点。我想将其转换为 JPA 查询参数,例如:

Query q = getEntityManager().createNamedQuery(namedQuery);
// How to set Date and Character in JPA ?
...
q.executeUpdate();

最佳答案

您的评论:

Ya but i have to differentiate it in to string,Date or Char using condition..

不,您不必区分。假设您正在使用 命名查询只需使用setParam(..)。假设您已将查询命名为:

@NamedQuery(name="DateCharacter.findOlderByChar",
query="SELECT dc FROM DateCharacter dc "
+"WHERE dc.date<:date AND dc.character=:character")

设置参数如下:

Query query = em.createNamedQuery("DateCharacter.findOlderByChar");
query.setParameter("date", new Date());
query.setParameter("character", 'a');

如果您需要强制转换,请在 setParam(..) 上执行此操作,如下所示:

query.setParameter("character", (char)97); // ascii code for 'a'

如果您需要任何条件来确定如何转换,请在设置参数之前执行此操作。

但是如果您尝试输入错误类型的参数,例如字符的字符串:

query.setParameter("character", "a string");

你最终会遇到如下异常:

Caused by: java.lang.ClassCastException: Cannot convert object "a string" of type "class java.lang.String" into an instance of "class java.lang.Character".

关于java - JPA 相当于 Hibernate NamedQuery 的 setCharacter(..)、setDate(..) 等...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48765662/

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