我按照http://docs.jboss.org/hibernate/orm/4.0/hem/en-US/html/listeners.html執行所有操作,但是既沒有執行in-bean方法也沒有執行外部方法。可能是什麼原因?Calback方法不適用於休眠bean
@Entity
@EntityListeners(EntityListener.class)
public class User {
@Id
@Column
@GeneratedValue
private Integer id;
// etc...
@PostConstruct
@PostLoad
@PostPersist
@PostUpdate
public void magic() {
System.out.println("YES I AM EXECUTED!");
System.exit(123);
}
}
OR
@Entity
@EntityListeners(MyListener.class)
public class User {
@Id
@Column
@GeneratedValue
private Integer id;
// etc...
}
+
public class MyListener {
@PostPersist
void postPersist(Object object) {
System.out.println("CAN'T BELEIVE I SEE THIS!");
System.exit(234);
}
}
我的代碼創建,保存和加載豆,但沒有任何反應的聽衆。這是一塊庫多數民衆贊成在執行操作:
@Repository
public class UserRepositoryImpl implements UserRepository {
@Autowired
private SessionFactory sessionFactory;
@Override
public User get(Integer id) {
return sessionFactory.getCurrentSession().get(User.class, id);
}
@Override
public User save(User user) {
Session session = sessionFactory.getCurrentSession();
user = (User) session.merge(user);
session.saveOrUpdate(user);
return user;
}
// etc...
}
庫的方法是從服務被稱爲像這樣的:
@Service
@Transactional
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
@Override
public void something() {
// just some repo calls + extra logic
}
}
我不認爲我有一些特別的東西在這裏做。
你可以展示如何保存和加載實體嗎? – Gwaeron
更新了帖子。 –