Hibernate查询readOnly DAO

时间:2016-07-12 06:47:23

标签: java hibernate

我使用以下结构来执行数据库查询:

getHibernateTemplate().execute(new HibernateCallback<List<String>>() {

    @Override
    public List<String> doInHibernate(Session session) {
        Query query = "select * from whatever";
        query.setReadOnly(true);
        return query.list();
    }
}

在正在进行的休眠会话中可能会出现某些属性映射,但这些表不应以任何方式进行更改。我首先尝试将evict(对象)用于那些特定的实体,但readOnly似乎是更好的方式,我加载这些不可修改的对象而没有任何其他附加在单独的DAO中。我无法触及hibernate映射本身,因此任何更改都不适合我。

基本上我的问题是:

(1)在这种情况下,使用逐出或设置readOnly会有什么不同吗?

(2)是否有一种巧妙的方法为DAO中的每个呼叫设置readOnly(true)?我担心将来的新方法可能会忘记设置readOnly部分并弄乱我的数据库。

0 个答案:

没有答案