【问题标题】:How to map columns in hibernate with class attributes?如何使用类属性映射休眠中的列?
【发布时间】:2013-10-21 05:44:40
【问题描述】:

我的问题陈述是:- 我想在休眠中调用一个存储过程,并且我想在对存储过程返回的列执行某些操作后将每个列映射到类属性.. 因为任何休眠查询都返回一个 对象列表 而不是 resultset.. 所以我如何在休眠中做到这一点... 我知道在春天我们可以很容易地使用 jdbcTemplate Map row 概念来做到这一点,但我只想使用 Hibernate..

可以在我的上一个问题中找到更多详细信息:- Alternative to NamedParameterJDBC template row mapper in Hibernate

【问题讨论】:

    标签: java spring hibernate


    【解决方案1】:

    有时我们有一个类,我们想根据查询返回的数据填充数据。该类是一个简单的 POJO 而不是 Hibernate 实体,因此 Hibernate 不会识别该类。这可以通过使用 Transformers 在 Hibernate 中完成。

    (UserActivityStat)hibernateSession.createQuery("select count(*) as totalPhotos from Photo p where p.user = :user").setResultTransformer(Transformers.aliasToBean(UserActivityStat.class)).uniqueResult();
    

    在上面的示例中,totalPhotos 是 UserActivityStat 类的属性,它不是 HibernateEntity。使用转换器可以实现您的结果。

    【讨论】:

    • 有趣..你能给我更多关于这个的细节吗..我可以使用这个从程序中检索结果吗..
    • 谢谢@Pratik 我正在尝试实现它
    • 嗨 Pratik 我试图搜索有关变压器的更多信息,但陷入了困境.. 我必须对列执行操作取决于我必须相应地设置 bean.. 你能帮我吗那..
    • 对于您的情况,我建议您有一个持有人 dto,它保存所有检索到的列值,然后将此对象传递给服务类,该服务类将使用列值对其执行操作并设置 bean
    猜你喜欢
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-09
    • 2020-09-24
    • 1970-01-01
    相关资源
    最近更新 更多