Tôi mới sử dụng Hibernate.org.hibernate.HibernateException: nhận được không hợp lệ mà không có giao dịch hoạt động
- Tự động tạo hibernate.cfg.xml (Netbeans wizard)
- Tự động tạo HibernateUtil.java
- Tự động tạo ra lớp POJO với các chú thích
Đang cố gắng để có được đối tượng từ cơ sở dữ liệu nhưng nhận được lỗi:
Exception in thread "pool-1-thread-1" org.hibernate.HibernateException: get is not valid without active transaction
at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:297)
nhận đối tượng:
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
CallInfo ci = (CallInfo) session.get(CallInfo.class, ucid);
hibernate.cfg.xml
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/sochi_feedback</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
<property name="hibernate.current_session_context_class">thread</property>
Bạn có thể thêm mã gọi phương thức get() không? –
@ShashankKadne 'CallInfo ci = (CallInfo) session.get (CallInfo.class, ucid);' – VextoR
Thêm "Transaction tx = session.beginTransaction();" ngay trước dòng này và vào cuối hoạt động của bạn, hãy gọi "tx.commit();" –