2016-07-15 8 views
0

現在のスレッドaddDepartmentコントローラが見つかり、私は、私はこれが私のxmlに追加されることを保証しているネストされた例外はorg.hibernate.HibernateExceptionです:いいえ、セッションは私が新しい部門を登録しようとしています

HTTP Status 500 - Request processing failed; nested exception is org.hibernate.HibernateException: No Session found for current thread 

このエラーを取得しますファイルエラーがそれでも

<tx:annotation-driven transaction-manager="hibernateTransactionManager"/> 
    <!-- Scans within the base package of the application for @Component classes to configure as beans --> 
    <context:component-scan base-package="com.xxx.account.*"/> 

これは例外をスロー制御方法であって

@RequestMapping(value = "/addDepartment", method = RequestMethod.GET) 
    public ModelAndView addCategory(@ModelAttribute("command") Department department, 
      BindingResult result) { 
     Map<String, Object> model = new HashMap<String, Object>(); 
     model.put("department", departmentService.getDepartments()); 
     return new ModelAndView("addDepartment"); 
    } 

これはすべてが大丈夫そうです、私はコントローラのメソッド

org.hibernate.HibernateException: No Session found for current thread 
    org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:106) org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:1014) m.chuma.account.dao.DepartmentDaoImpl.getDeparments(DepartmentDaoImpl.java:31)com.chuma.account.service.impl.DepartmentServiceImpl.getDepartments(DepartmentServiceImpl.java:28) 

にアクセスしようとすると、これは@Transactionalアノテーションを付け部門DAOで

@Service("departmentService") 
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true) 
public class DepartmentServiceImpl implements DepartmentService{ 


    @Autowired 
    private DepartmentDao departmentDao; 

    @Transactional(propagation = Propagation.REQUIRED, readOnly = false) 
    public void addDepartment(Department department) { 
     departmentDao.addDepartment(department); 
    } 

私が午前エラーの完全なスタックトレースでありますこれまでのところ私のデバッグから、ビューを返すコントローラメソッドにアクセスしようとすると、エラーは依然として続きます。何が間違っているか、私は何が欠けていますか?

+0

あなたがでhibernate.cfg.xmlの中に、<プロパティ名=「current_session_context_class」>スレッド 'や' <キー=「hibernate.current_session_context_classを」支える>スレッド ''のようなものを持っていることを確認したいと思いますSpringコンフィグレーションでの 'SessionFactoryBean'の定義です。 –

+0

私はhibernate.cfg.xmlファイルを持っていません – Blaze

+0

Spring XML設定ファイルか '@ Configuration'で注釈が付けられたJavaクラスのいずれかにHibernateプロパティのセットがありますか? –

答えて

0

@Transactional定義のためにpropagation = Propagation.SUPPORTSとしているのはなぜですか? これは、メソッドを呼び出す場所から既にトランザクションが開いている場合にのみ、メソッドがトランザクションコンテキストで実行されることを意味します。

Propagationを使用すると同じことが起こります.REQUIRED?

+0

これが私の問題を解決しました – Blaze

関連する問題