当前位置: 首页 > 面试题库 >

休眠条件Transformers.aliasToBean未填充正确的值

司马俊晖
2023-03-14
问题内容

我正在尝试通过加入实体类来创建BO

Criteria criteria = session.createCriteria(Report.class,"r");
    criteria
    .createAlias("template", "t")
    .createAlias("constituents", "rc")
    .createAlias("rc.entity", "pe")
    .createAlias("pe.model", "m")
    .createAlias("pe.scenario", "s")
    .setProjection(Projections.projectionList()
            .add( Projections.property("r.Id"))        
            .add( Projections.property("t.Typ"))                
            .add( Projections.property("pe.bId"))               
            .add( Projections.property("m.model"))              
            .add( Projections.property("s.decay"))
      ).setMaxResults(100)
     .addOrder(Order.asc("r.Id"))
     .setResultTransformer(Transformers.aliasToBean(BO.class));

我得到100个空BO,即所有属性均为null我的BO如下

public class BO implements Serializable {

private static final long serialVersionUID = 1L;
private int Id;
private String Typ;
private String bId;
private String model;
private String decay;

    Getters and Setters

.....

当我删除aliasToBean行并遍历Object []时,我可以看到已获取正确的值,请指导我…


问题答案:

尝试显式地对ProjectionList项目进行别名化,以匹配Bean中的字段名称,如下所示:

Criteria criteria = session.createCriteria(Report.class,"r");
criteria
.createAlias("template", "t")
.createAlias("constituents", "rc")
.createAlias("rc.entity", "pe")
.createAlias("pe.model", "m")
.createAlias("pe.scenario", "s")
.setProjection(Projections.projectionList()
        .add( Projections.property("r.Id"), "Id")        
        .add( Projections.property("t.Typ"), "Typ")                
        .add( Projections.property("pe.bId"), "bId")               
        .add( Projections.property("m.model"), "model")              
        .add( Projections.property("s.decay"), "decay")
  ).setMaxResults(100)
 .addOrder(Order.asc("r.Id"))
 .setResultTransformer(Transformers.aliasToBean(BO.class));


 类似资料:
  • 问题内容: 我想将JPA2 Criteria API与元模型对象一起使用,这似乎很简单: 但是这个Root.get总是抛出一个。是由Hibernate自动生成的,看起来像 但显然从未有人居住。 我是否缺少框架初始化步骤? 编辑: 这是崩溃时我如何使用JPA和元模型的摘要: (是一个类,所以我就在前面)和相关的堆栈跟踪: 编辑2: 在JBoss EntityManager指南中,我可以看到 当构建H

  • 我想加密EnteredDetails(java bean)类型的arraylist,并将其序列化到一个文件中。我正在关注AES-128位加密的链接:http://www . code 2 learn . com/2011/06/encryption-and-decryption-of-data-using . html 要使用aes class的encrypt方法,我必须将arrarylist转换

  • 问题内容: 对于似乎很简单的问题,我找不到解决方案。假设有2种实体类: 如何创建一个标准查询以返回包含至少一个满足给定条件(例如b.text =’condition’)的B实体的所有A? 问题答案: 我认为此链接可能很有用:http : //mikedesjardins.net/2008/09/22/hibernate-criteria- subqueries-exists/ 它包含以下有关如何创

  • 问题内容: 我接下来还有几粒豆: 我正在尝试执行下一个Hibernate查询: 问题: 我了解Hibernate正在寻找类似的东西: 代替: 关于如何在不创建新bean的情况下解决此问题的想法? 谢谢! 问题答案: 我写了一个ResultTransformer可以解决您的问题。它的名称是AliasToBeanNestedResultTransformer,请在github上查看。

  • 我已经编写了一个EDI文档生成器,目前它会在ISA段中填充任何少于所需字符数的字段,并在左侧加空格,例如15个字符的元素为“1234567890”。我想让我的客户在pad上留个空间。我可以这样做,但ANSI X12是否规定了ISA段中的元素应该如何填充?

  • 问题内容: 我正在尝试实现基于密码的加密算法,但出现此异常: javax.crypto.BadPaddingException:给定的最终块未正确填充 可能是什么问题? 这是我的代码: (JUnit测试) 问题答案: 如果尝试使用错误的密钥解密填充了PKCS5的数据,然后取消填充(由Cipher类自动完成),则很可能会收到BadPaddingException(可能略小于255/256,约为99.