SELECT emp.employeeId, emp.employeeFirstName, comp.companyname, dept.departmentname
FROM Employeetable emp, Companytable comp, departmenttable dept
WHERE emp.employeeCompanyId=comp.companyId AND emp.EmployeeDepartmentID=dept.DepartmentID;
有效的hbm文件:
<sql-query name="callrealtimeprocedure">
<return alias="employeetable" class="com.AdiSys.eRMS.entity.Employeetable"/>
<return-join alias="companytable" property="com.AdiSys.eRMS.entity.Employeetable"/>
<return-join alias="companytable" property="com.AdiSys.eRMS.entity.Employeetable"/>
</sql-query>
有责任的pojo:
@NamedNativeQueries({
@NamedNativeQuery(
name = "callrealtimeprocedure",
query = "CALL realtime(:employeeId,:employeeFirstName)",
resultClass = Employeetable.class
)
})
@Entity
同样是部门hbm和pojo。
创建会话后的我的java类:
Query EmplyeeQuery = session.createSQLQuery("CALL realtime(:employeeId,:employeeFirstName,:companyname,:departmentname)")
.addEntity(Employeetable.class)
.addEntity(Companytable.class)
.addEntity(Departmenttable.class)
.setParameter("employeeId", "")
.setParameter("employeeFirstName","")
.setParameter("companyname", "")
.setParameter("departmentname", "");
我无法找到如何在hbm和pojo以及java类中链接存储过程sql查询
答案 0 :(得分:0)
嗯,首先,我不会对存储过程感到困扰。使用Hibernate的全部意义在于您不需要编写任何SQL。如果您要编写SQL,那么使用Hibernate并没有太大的收获。
Hibernate文档的一个非常好的来源是http://www.hibernate.org/docs - 如果你转到&#34;核心参考手册&#34;无论您使用哪种版本的Hibernate,您都会找到一些关于如何设置POJO的非常好的示例。
另外,我不知道您是否计划使用Hibernate注释。我喜欢这些 - 与使用单独的XML文件相比,它们不那么混乱。看看&#34; Hibernate Annotations参考指南&#34; (来自同一链接,在v3.5下),以获得使用它们的指导。