私は休止状態で春のプロジェクトを持っています。私はこの方法でオブジェクトを削除しようとすると:Hibernate 4.3.6 + spring - 再帰的削除メソッド
User ent = userDaoImpl.load(User.class, 1);
userDaoImpl.delete(ent);
結果は以下の通りです:
root cause
java.lang.StackOverflowError
com.maxim.spring.dao.UserDaoImpl.delete(UserDaoImpl.java:50)
com.maxim.spring.dao.UserDaoImpl.delete(UserDaoImpl.java:50)
com.maxim.spring.dao.UserDaoImpl.delete(UserDaoImpl.java:50)
com.maxim.spring.dao.UserDaoImpl.delete(UserDaoImpl.java:50)
com.maxim.spring.dao.UserDaoImpl.delete(UserDaoImpl.java:50)
com.maxim.spring.dao.UserDaoImpl.delete(UserDaoImpl.java:50)
com.maxim.spring.dao.UserDaoImpl.delete(UserDaoImpl.java:50)
com.maxim.spring.dao.UserDaoImpl.delete(UserDaoImpl.java:50)
com.maxim.spring.dao.UserDaoImpl.delete(UserDaoImpl.java:50)
com.maxim.spring.dao.UserDaoImpl.delete(UserDaoImpl.java:50)
com.maxim.spring.dao.UserDaoImpl.delete(UserDaoImpl.java:50)
com.maxim.spring.dao.UserDaoImpl.delete(UserDaoImpl.java:50)
com.maxim.spring.dao.UserDaoImpl.delete(UserDaoImpl.java:50)
...
私は、オブジェクトが永続コンテキストでなければならないことを読んで、それをloadメソッドによってロードされます。
@Override
public void delete(User user) {
delete(user);
}
@Override
public User load(Class cl, int id){
return (User) getSession().getCurrentSession().load(cl, id);
}
と実装すぎAbstractDaoを拡張:インタフェースの実装は次のように動作します質問、事前に 。
AbstractDao方法:適切な方法でそれを作るためにどのように
public void delete(Object entity) {
getSession().getCurrentSession().delete(entity);
}
?あなたは、スタック上のメモリを持つまで