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

标签 java hibernate

我有一个类 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/

相关文章:

java - 如何在 IntelliJ 中查看日志文件的尾部?

java - 如何将 char[][] 扁平化为 char[]?

java - spring mvc Controller 报错java.lang.IllegalStateException : No suitable resolver for argument [0]

c# - 使用JNA将c#的字符串转换为java

java - 如果有效,为什么其他方法不起作用?

java - 如何在 Cucumber Selenium 中迭代特征文件

java - Spring Integration 服务激活器引用 Hibernate JPA 存储库方法

java - 如何在 Hibernate @Entity 类中使​​用 Enum 成员?

java - Hibernate更新实体最佳实践

java - 如何创建自定义字段来在 REVINFO 表中存储用户凭据