我认为您已经成为双重交易管理的受害者。如果在同一项目中一起使用
Spring Transaction Management和
HibernateTransaction Management在一起,则更可能出现此问题。
您的代码应为:
选项1. hibernate事务管理
public class HibernateUserProfileDAO implements UserProfileDAO { private org.hibernate.SessionFactory sessionFactory; public UserProfile getUserProfile(int userId) { org.hibernate.classic.Session session = sessionFactory.getCurrentSession(); session.beginTransaction(); UserProfile userProfile = new UserProfile(); userProfile.setUserName("sury1"); session.save(userProfile); session.getTransaction().commit(); session.close(); return userProfile; }}
或 选项2。 spring交易管理
@Transactionalpublic class HibernateUserProfileDAO implements UserProfileDAO { private org.hibernate.SessionFactory sessionFactory; public UserProfile getUserProfile(int userId) { org.hibernate.classic.Session session = sessionFactory.getCurrentSession(); UserProfile userProfile = new UserProfile(); userProfile.setUserName("sury1"); session.save(userProfile); session.close(); return userProfile; }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)