我需要以报告的形式报告来自3个不同表格的数据。
用户可以搜索的各种搜索组合是..
查询..
select DISTINCT W.CUST_ACCT_ID, W.INS_USER_ID, WS.STTI_DATE, WS.STTI_AMT, WC.CMMT from T_WRK W
INNER JOIN T_WRK_STTI WS ON W.WRK_STTI_ID = WS.WRK_STTI_ID
INNER JOIN T_WRK_CMMT WC ON W.WRK_ID = WC.WRK_ID
WHERE W.CUST_ACCT_ID = 90610194 AND WS.STTI_DATE BETWEEN '01-JAN-12' AND '31-DEC-12'
select DISTINCT W.CUST_ACCT_ID, W.INS_USER_ID, WS.STTI_DATE, WS.STTI_AMT, WC.CMMT from T_WRKCS W
INNER JOIN T_WRKCS_STTI WS ON W.WRKCS_STTI_ID = WS.WRKCS_STTI_ID
INNER JOIN T_WRKCS_CMMT WC ON W.WRKCS_ID = WC.WRKCS_ID
WHERE W.INS_USER_ID = 231 AND WS.STTI_DATE BETWEEN '01-JAN-12' AND '31-DEC-12'
所有现有表都已使用Hibernate / JPA映射。
我已经阅读了google中的各种方法,有人可以告诉我以下哪种hibernate方法最适合我的方案。
我在想NamedQuery,但是没有看到跨越多个表的NamedQuery,一个例子会很棒。谢谢。
答案 0 :(得分:0)
@Entity
@NamedQuery(name="findSalaryForNameAndDepartment",
query="SELECT e.salary " +
"FROM Student e" +
"WHERE e.department.name = :deptName AND " +
" e.name = :empName")
您也可以在部门表中添加联接并稍微更改查询
日期使用参数
em.createNamedQuery("xxx").setParameter("srtartDate", ...).setParameter("endDate",..)