0

これは、ORG_ID、ORG_NAME、ID、ORG_ID、EMP_ID、EMP_NAME、CARD_NUM、ORG_PAY、EMP_PAYなどのEmpおよびOrgテーブルから値を取得するためのHibernateDaoImplです。

Javaコードを使用してそれらを反復処理し、取得したい値であるかどうかを確認するにはどうすればよいですか?

public List<Emp> findByOrgId(String orgId) throws Exception {
    SessionFactory sf = HibernateSessionFactory.getSessionFactory();
    Session session = sf.openSession();
    String hql = "select o.orgId,o.orgName,e.empId,e.empName,e.cardNum,e.orgPay,e.empPay from Org o,Emp e where e.orgId=o.orgId and o.orgId=?";
    Query query = session.createQuery(hql);
    query.setString(0,orgId);
    List list = query.list();
    return list;
4

1 に答える 1

0

クエリはパラメーター (の値o.orgId) を想定していますが、何も渡していません。

コードは次のようになります

Query query = session.createQuery(hql);
List<Emp> empList = (List<Emp>) query.setInteger(orgId).list();

クエリを見ると、Emp エンティティは ID を持つのではなく、Org エンティティへの関連付けを持つ必要があるようにも見えます。また、エンティティには Employee と Organization という名前を付けます。これらの 3 文字の名前を使用するよりも、コードがはるかに読みやすくなります。

于 2012-11-16T07:21:26.020 に答える