0

オブジェクト配列に LogEventType を取得しました。コンストラクターを使用して新しい LogEventType を作成する方法はありますか? これは、LogEventType がマップされたエンティティである可能性がありますが、そうではありません。SQL と通常の挿入を使用してテーブル logeventtype を作成しました。この場合は返品

new LogEventType(obj[0],obj[1]); 

大丈夫ですが、後でリストを取得する必要があります。

Session session = sessionFactory.getCurrentSession();
String queryString = "select type.eventid, type.value from logeventtype type where type.eventid = :eventid";
Query query = session.createSQLQuery(queryString).setParameter("eventid", enventId);
Object[] obj = (Object[]) query.uniqueResult();

編集:これは私が試してきたことです

Session session = sessionFactory.getCurrentSession();
String queryString = "select new com.company.Test(type.value) from logeventtype type where type.eventid = :eventid";
Query query = session.createQuery(queryString).setParameter("eventid", 1l);
Object[] obj = (Object[]) query.uniqueResult();

logeventtype がマップされていません。

4

1 に答える 1

0

私はこれを行うことができます

    Query query = sessionFactory.getCurrentSession().createSQLQuery("select * from logeventtype ").addScalar("eventId", StandardBasicTypes.LONG)
            .addScalar("value", StandardBasicTypes.STRING).setResultTransformer(Transformers.aliasToBean(LogEventType.class));
于 2012-10-22T11:29:55.933 に答える