具有休眠标准的投影列表的结果

发布于 2024-11-26 07:08:15 字数 852 浏览 1 评论 0原文

我正在使用带有预测的标准从数据库中提取 2 列。但是,我想要的结果是 2 个简单元素列表,而不是 1 个元素列表。

我的标准:

最终 DetachedCriteria 标准 = DetachedCriteria.forClass(Valeur.class, "value") .add(Restrictions.eq("value.parameter.id",parameterId)) (...更多限制...) criteria.setProjection( Projections.distinct( Projections.projectionList() .add( Projections.property( "value.valeurVal" ) ) .add( Projections.property( "measure.mesureDate" ) ) ) );

    criteria.addOrder( Order.asc("measure.mesureDate") );

final List<Data> result =  (List<Data>)  criteria.getExecutableCriteria(_sessionFactory.getCurrentSession()).list();

我的数据对象:

private double _value;
@NotNull
private Date _date;

在本例中,我有一个数据列表,但我想要两个列表:一个是双精度列表,另一个是日期列表。这可能吗?有什么想法吗?

非常感谢您的帮助。 凡妮莎

I'm using a criteria with projections to extract 2 columns from my database. However, I would like a result as 2 lists of simple elements instead of 1 list of elements.

My criteria :

final DetachedCriteria criteria = DetachedCriteria.forClass(Valeur.class, "value")
.add(Restrictions.eq("value.parametre.id", parameterId))
(... more restrictions ...)
criteria.setProjection( Projections.distinct( Projections.projectionList()
.add( Projections.property( "value.valeurVal" ) )
.add( Projections.property( "measure.mesureDate" ) ) ) );

    criteria.addOrder( Order.asc("measure.mesureDate") );

final List<Data> result =  (List<Data>)  criteria.getExecutableCriteria(_sessionFactory.getCurrentSession()).list();

My Data object :

private double _value;
@NotNull
private Date _date;

In this case, I have a list of Data, but I want to have TWO lists : one of double and the other of Date. Is this possible ? Any idea ?

Thanks a lot for your help.
vanessa

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

愁杀 2024-12-03 07:08:15

获得返回列表后,您可以手动将其输出到两个列表中:

List<String> stringList = new ArrayList<String>();
List<Integer> integerList = new ArrayList<Integer>();
results = criteria.list();
if(results != null) {
    for (Object[] row : results) {
        stringList.add((String)row[0]);
        integerList.add((Integer)row[1]);
    }
}

Once you have the return list, you can output it manually into two lists:

List<String> stringList = new ArrayList<String>();
List<Integer> integerList = new ArrayList<Integer>();
results = criteria.list();
if(results != null) {
    for (Object[] row : results) {
        stringList.add((String)row[0]);
        integerList.add((Integer)row[1]);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文