Java 如何在JPA中使用to_char函数从时间戳中获取记录
我正在尝试使用EclipseLink和实体查询数据库。当我使用普通查询时,从当前日期返回记录,当我使用Java 如何在JPA中使用to_char函数从时间戳中获取记录,java,postgresql,jpa,Java,Postgresql,Jpa,我正在尝试使用EclipseLink和实体查询数据库。当我使用普通查询时,从当前日期返回记录,当我使用JPA0时返回记录。我在哪里做错了,或者如何使用JPA中的char函数我的数据库是postgresql。 返回记录的常规sql查询 select * from mytable where to_char(transaction_date, 'YYYY-MM-DD') = '2016-01-19'; MyEntity @Temporal(javax.persistence.Temporal
JPA
0时返回记录。我在哪里做错了,或者如何使用JPA
中的char函数我的数据库是postgresql。
返回记录的常规sql查询
select *
from mytable
where to_char(transaction_date, 'YYYY-MM-DD') = '2016-01-19';
MyEntity
@Temporal(javax.persistence.TemporalType.DATE)
private Date transaction_date;
EntityManager e = EntityMgr.MyFact().createEntityManager();
e.getTransaction().begin();
Query qry = e.createQuery("from MyEntity u where u.transaction_date=?1");
qry.setParameter(1, new Date(), TemporalType.DATE);
您是否尝试过使用qry.setParameter(1,new Date(),TemporalType.TIMESTAMP) 您可以使用
运算符
像
您的数据库字段是什么类型的
transaction\u date
?@thomas数据类型是timestamper您的实体在哪里?您在JPQL中遗漏了“SELECT u”(错误)。您尝试过使用CriteriaBuilder吗?@NeilStockton也尝试过,但没有成功。请打开日志,以便我们可以查看发送到数据库的SQL。我想您可以使用function()API调用数据库函数,例如“to_CHAR”。Pandey这里是从付款中选择金额、id、交易日期的输出,其中(交易日期=?)bind=>[2016-01-18]我如何使用该功能?类似于我问题中的查询?
OPERATOR('ToChar', transaction_date,'YYYY-MM-DD')= '2016-01-19';