Java 使用TRUNC和WITH的EJB查询
当我使用NativeQuery时,我有一个查询可以正常工作,但是我需要使用EJB查询来解决我的问题。有人能帮我重新格式化我的查询以便它也能用于EJB吗 这是本机版本Java 使用TRUNC和WITH的EJB查询,java,sql,oracle,ejb,nativequery,Java,Sql,Oracle,Ejb,Nativequery,当我使用NativeQuery时,我有一个查询可以正常工作,但是我需要使用EJB查询来解决我的问题。有人能帮我重新格式化我的查询以便它也能用于EJB吗 这是本机版本 Query query = getEntityManager.createNativeQuery("WITH src as (" + "Select distinct TRUNC(CreationDate) a" + "From myTable)" + "Select src.a from src Order by src.a d
Query query = getEntityManager.createNativeQuery("WITH src as ("
+ "Select distinct TRUNC(CreationDate) a"
+ "From myTable)"
+ "Select src.a from src Order by src.a desc");
myTable的类是实体类型。属性如下所示
@Id
private Long Id;
@Column(nullable = false)
private String Name;
@Column(length = 30, nullable = false)
private Timestamp CreationDate;
属性与上面的setter和getter相同。(身份证除外)
谢谢SELECT DISTINCT
TRUNC(CreationDate) as a
FROM
(SELECT CreationDate FROM myTable ORDER BY CreationDate DESC)
试试这个:
Query query = getEntityManager.createQuery(
"select DISTINCT TRUNC(src.CreationDate)
from myTable src
ORDER by src.CreationDate"
);
List<Object[]> rows = query.list();
for (Object[] row: rows) {
System.out.println("My date" + row[0]);
}
Query Query=getEntityManager.createQuery(
“选择不同的TRUNC(src.CreationDate)
来自myTable src
由src.CreationDate订购”
);
List rows=query.List();
对于(对象[]行:行){
System.out.println(“我的日期”+行[0]);
}
我询问了类名,您使用什么实体提供者?冬眠日食?OpenJPA?Hibernate,类名是myTable alsoDid您在Hibernate.cfg.xml中指定了oracle方言吗?此查询会导致一个异常,显示“无法解析属性a”没有仍然相同的错误,但看起来与以前一样!它不起作用,当您在select语句中使用TRUNC时,order by将不起作用。它生成一个grammerexception排序依据有什么问题?在调试过程中清除它。