gpt4 book ai didi

java - 使用hibernate从数据库中检索记录

转载 作者:行者123 更新时间:2023-12-01 15:34:31 25 4
gpt4 key购买 nike

我有一个类 Trade 和一个子类 Operation。它们被映射到数据库中。所以当我这样做时:

trades = session.createQuery("from Trade").list() 

我获得了交易记录的数组列表,并且可以通过我的交易实例访问特定交易的操作。

但是,当我这样做时:

trades = session.createQuery("
from Trade as trade
inner join trade.operations as operation
with to_char(operation.datetime, 'yyyyMMdd') = to_char(sysdate, 'yyyyMMdd')
order by operation.datetime"
).list();

我得到一个对象数组,其中每个元素都包含操作和交易实例。

如何使用条件(与第二个选项相同)将记录作为交易数组(与第一个选项相同)检索?

<小时/>

我尝试:从 Trade 选择交易作为交易内部联接 trade.operations 作为操作 to_char(operation.datetime, 'yyyyMMdd') = to_char(sysdate, 'yyyyMMdd') order by opera.datetime

它成功了,谢谢javatestcase。然而,当我循环 trade.operations 时,我得到了包含今天所有操作的交易,但我也得到了该交易的所有操作,即使该操作是另一天的操作。所以不满足条件。

有什么线索吗?

提前致谢!!

最佳答案

trade.operations 始终包含该交易的所有操作。 hibernate 不会为您提供部分初始化的子集合的交易,因为它破坏了更改跟踪,并且还会导致许多困惑。因此,hibernate 能做的最好的事情就是为您提供成对的交易和匹配操作。我将创建一个包含交易和匹配操作所需的所有属性的类,并使用 AliasToBeanTransformer。

关于java - 使用hibernate从数据库中检索记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9105240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com