Bạn không được sử dụng Session và Transaction như một thành viên trong lớp của bạn dao như vậy. Session/EntityManager được cho là có phạm vi theo đơn vị công việc, chúng không an toàn theo chủ đề.
Ở trạng thái hiện tại của bạn, vì Spring DI tạo bean dưới dạng singleton, nếu hai luồng sử dụng dao cùng lúc thì luồng thứ hai sẽ ghi đè cả hai Session và Transaction đó là lý do tại sao tôi cho rằng bạn nhận được IllegalStateExcepion.
Bạn phải tạo phạm vi chuỗi cho chúng bằng cách sử dụng chúng làm biến trong các phương thức hoặc, nếu bạn không cần phương thức cụ thể của hibernate, bạn có thể tạo cấu hình JPA đầy đủ trong Spring và sử dụng @PersistenceContext/@PersistenceUnit để cho phép khuôn khổ giải quyết vấn đề đó.