java—如何在hibernate中实现并发

sc4hvdpw  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(280)

我是hibernate的初学者,我正在为本地学院开发一个web应用程序,该应用程序将为学生提供在线课程,因此每个课程只有20个座位,系统假设可以注册20个学生,我想处理一个用例,其中20多个学生同时注册,所以实现应该是这样的,如果第20个学生注册然后系统显示通知,我将如何实现这个使用hibernate。
我想的解决方案是通过在数据库端引入触发器来实现的,这根本不是一个好的实践。
我知道hibernate非常先进,可以处理这样的事情,我想在实时数据的基础上显示座位数,所以请给我建议解决方案和最佳实践。

aydmsdu9

aydmsdu91#

创建实体 CourseSeats 并在每个可以预订的座位上插入一排。预订一个座位会像 UPDATE CourseSeats s SET s.student = :student WHERE s.id = (SELECT MIN(s2.id) FROM CourseSeats s2 WHERE s2.student IS NULL) . 当更新计数为0时,表示没有更多的可用座位。看看有多少座位可以坐 SELECT COUNT(*) FROM CourseSeats s WHERE s.student IS NULL . 只要每隔一段时间执行一次查询,如果它返回0,您就可以通知用户。

相关问题