我的对象数组中有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没有映射。
答案 0 :(得分:0)
我可以用
做到这一点 Query query = sessionFactory.getCurrentSession().createSQLQuery("select * from logeventtype ").addScalar("eventId", StandardBasicTypes.LONG)
.addScalar("value", StandardBasicTypes.STRING).setResultTransformer(Transformers.aliasToBean(LogEventType.class));