我正在尝试在专用 DAO 类中的页面之外执行数据库事务。
这个答案有点帮助,但是在按照官方网站上的说明进行操作后,交易仍未提交。我没有收到任何错误 - 我可以看到正在运行插入查询,但数据库中没有出现任何条目。
DAO 类和接口是否必须在特定的包中@Match()
才能找到它们?这是唯一可能导致我想出的问题的事情......
这是所有(我希望)相关代码:
应用模块
public static void bind(ServiceBinder binder) {
binder.bind(MemberDAOInterface.class, MemberDAO.class);
}
@Match("*DAO*")
public static void adviseTransactions(HibernateTransactionAdvisor advisor,
MethodAdviceReceiver receiver) {
advisor.addTransactionCommitAdvice(receiver);
}
成员DAO接口
public interface MemberDAOInterface {
@CommitAfter
public void addMember(MemberEntity memberEntity);
@CommitAfter
public void updateMember(MemberEntity memberEntity);
@CommitAfter
public void deleteMember(MemberEntity memberEntity);
}
会员DAO
public class MemberDAO implements MemberDAOInterface {
@Inject
private Session session;
public void addMember(MemberEntity memberEntity) {
this.session.persist(memberEntity);
}
public void updateMember(MemberEntity memberEntity) {
this.session.update(memberEntity);
}
public void deleteMember(MemberEntity memberEntity) {
this.session.delete(memberEntity);
}
}