0

我使用一个使用投影列表的标准请求来返回一个自定义的DTO。现在我有两个属性投影:休眠:投影到字符串属性上的布尔值

criteria.setProjection(
    Projections.projectionList 
     .add(Projections.property("Employee.id"), "id") 
     .add(Projections.property("Employee.name"), "name")) 
    .setResultTransformer(Transformers.aliasToBean(EmployeeDto.class)); 

在我的EmployeeDto中,我有一个布尔属性“hasPicture”。这个信息是我的Employee表上的可空字符串列(名字,如果图片实际上)。

我不关心这个名字本身,我想补充一个新的投影,做以下:

PictureName = NULL - > dto.hasPicture =真

PictureName == NULL - > dto.hasPicture = false

这可能吗?怎么样?

+0

斯蒂夫先生。我已经做出了这个解决方法,当然它工作得很好。但我的问题更多的是要知道是否有一种方法可以直接在标准查询中执行此操作,默认情况下。那么,我可以考虑Hivernage没有这样的事情吗?虽然我注意到你的第二个解决方案。 ;) – ddp

+0

Hivernage = Hibernate(ahah该死的法语拼写检查!) – ddp

回答

0

你可以在你的hasPicture函数中做这个检查。

public Boolean hasPicuture(){ 
    if (this.picture == null) 
     return false 
    return this.picture 
    } 

另一种方法是编写自己的布尔类型并在映射中使用它。