Hiberanate的拦截器和监听事件
创建监听类: SaveOrUpdateListener
public classSaveOrUpdateListener extends DefaultSaveOrUpdateEventListener { @Override public voidonSaveOrUpdate(SaveOrUpdateEvent event) { // TODO Auto-generated method stub System.out.println("保存前执行"); //判断是否对用户表进行操作if(event.getObject() instanceof entity.UserInfo){ UserInfo user=(UserInfo)event.getObject(); super.onSaveOrUpdate(event); //执行后续操作 } System.out.println("保存后执行"); }}
同时需要在hibernate.cfg.xml文件中进行配置监听的事件:
//放在.xml文件底部
<eventtype="save-update">
<listenerclass="listener.SaveOrUpdateListener"/>
</event>
命名查询:
需要在数据映射元文件中进行配置,如:
<query name=“getUserByGender”>
<![CDATA[from UserInfo wheregender=:gender]]>
</query>
在JAVA代码中的实现,如:
Query q=session.getNamedQuery(“getUserByGender”);
q.setString(“gender”,”男”);