我按照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
更新了帖子。 –