0

我有两张桌子:

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

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

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

我想知道是否有更优雅的方法来设置布尔属性与查询(条件是可取的)而不使这个 for 循环?

4

1 回答 1

0

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

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

您应该能够轻松地使用 Criteria API 进行翻译。

于 2012-05-10T10:09:39.257 回答