与Hibernate的只读数据库连接

时间:2014-01-07 19:52:04

标签: java database hibernate readonly

是否可以使用Hibernate并使用只读连接连接到数据库?我将研究一个项目,该项目需要连接到现有数据库,从中提取数据,并在应用程序中执行一些复杂的数据操作。在所有这些中,我无法更改数据库中的任何内容,因此只读连接要求。

我的第一个想法是使用Hibernate从数据库中提取数据,以便我可以用现成的Java对象来表示数据,但是,我似乎无法找到有关如何强制Hibernate使用只读的任何信息数据库连接...我觉得这可能实际上是不可能的,但我想在寻求其他想法之前先从别人那里找到答案。

3 个答案:

答案 0 :(得分:3)

我没有足够的声誉来评论,显然:(

但是回应你关于Hibernate仍然可以写回数据库的情况的评论,你可以手动将对象从持久化上下文中分离出来,之后Hibernate会停止关注对象的状态&是否经过修改。

答案 1 :(得分:2)

答案 2 :(得分:0)

要对在应用程序中执行的任何操作均采取防弹措施,您需要为Hibernate配置为使用的DB用户分配只读权限。这必须在数据库端完成。否则,如果仅依赖应用程序端的配置,则总是会犯一个错误(忘记分离实体,忘记将会话设置为只读模式,等等)。