冬眠。删除未使用的条目

时间:2018-11-09 12:45:11

标签: java database hibernate

我有一张看起来像这样的桌子:

ID  USER_NAME ROOM_ID
 1  user1   13
 2  user2   11  
 3  user3   null
 4  user4   4   
 5  user5   2   

房间桌子

ID  ROOM_NAME SQUARE
13  room1   17
 4  room2   42  
 2  room3   26
11  room4   37  
 5  room5   28  

在我的应用程序中,我可以更改用户的ROOM_ID,例如,更改为Null。然后,我将拥有一个“未使用”的房间(此房间中没有用户)。

因此,问题是:我如何使用Hibernate自动删除此会议室?

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以为此使用触发器:

const names = [{ name: "John" },{ name: "Paul" },{ name: "George" },{ name: "Ringo" },{ name: "John" } ];

let result = Object.values(names.reduce((a,c) => Object.assign(a, {[c.name]:c}),{}));
console.log(result);

这样,当您更新任何用户时,分配的房间将被删除

答案 1 :(得分:-1)

尝试此代码-有关详细信息,请参见注释:

Session session = null;
if(session == null) {
    initTransaction();
}

Room room = (Room) session.createCriteria(UserRoomTable.class); // First table Pojo class name
room.add(Restrictions.isNull("roomId"));
session.delete(room); // This deletes the unused entry