从数据库查询列表时设置瞬态布尔属性?

时间:2012-05-10 10:02:26

标签: hibernate java-ee criteria-api

我有两张桌子:

1-设备: 2-用户:对设备有外键,关系是ManyToOne。

我有设备列表,如果设备未分配给用户,则可以删除设备 所以我得到所有设备,并检查设备是否分配给用户然后设置瞬态布尔属性如下:

List <Device> devices = systemSettingsDao.getAllDevices();
            for (Device device : devices)
                device.setDeletable(!systemSettingsDao
                        .isDeviceUsedByUser(device.getId()));

我想知道是否有更优雅的方法来设置布尔属性并进行查询(条件更可取)而不进行循环播放?

1 个答案:

答案 0 :(得分:0)

以下是您可以获取所有可删除设备的方法:

select distinct device from Device device where device.id not in (select u.device.id from User u)

您应该可以轻松地使用Criteria API进行翻译。