我有两张桌子:
1-设备: 2-用户:对设备有外键,关系是ManyToOne。
我有设备列表,如果设备未分配给用户,则可以删除设备 所以我得到所有设备,并检查设备是否分配给用户然后设置瞬态布尔属性如下:
List <Device> devices = systemSettingsDao.getAllDevices();
for (Device device : devices)
device.setDeletable(!systemSettingsDao
.isDeviceUsedByUser(device.getId()));
我想知道是否有更优雅的方法来设置布尔属性并进行查询(条件更可取)而不进行循环播放?
答案 0 :(得分:0)
以下是您可以获取所有可删除设备的方法:
select distinct device from Device device where device.id not in (select u.device.id from User u)
您应该可以轻松地使用Criteria API进行翻译。