2014-02-06 89 views
0

我有一个使用PostgreSQL和Hibernate的Spring/Roo应用程序。Spring Roo - Bypass Hibernate

,只要适合,连接信息位于数据库属性文件

src/main/resources/META-INF/spring/database.properties 

不幸的是,我已经在那里通过Hibernate查询数据库正在消耗的资源太多的情况。我确信我可以从上面列出的文件中提取数据库信息(网址/用户名/密码),但我不确定从哪里开始搜索。

是否有手册或其他我可以找到这些信息的地方?

回答

0

如果您希望绕过Hibernate手动编写更高效的查询,则不必单独建立连接,而应该不这样做。

获得休眠会话和展开它获得底层java.sql.Connection。或者通过Hibernate自己的接口使用本机SQL。

这样你仍然可以使用Hibernate的有用位,就像连接池集成一样。与Hibernate共享相同的连接池将提高效率,如果以这种方式进行操作,将会减少额外的代码。

我没有使用Spring Roo,所以我不能专门为它说话。 Here's info for Hibernate used via JPAhere。对于您有Session对象直接Hibernate使用中,使用Session.connection()在旧版本的Hibernate,或在较新版本的Work接口:

如果您坚持要用手去做这件事,请从开始。

+0

感谢您的协助。我确实尝试了你提供的链接,但你是对的,效率不值得额外头痛。 – chora

+0

@chora有时它非常值得头痛,特别是在使用底层数据库引擎的本地特性使得以更智能和更高效的方式编写查询成为可能的情况下。如果你只是想减少每个查询的开销,那么不需要,它通常是不值得的,并且通过使你的查询变得更聪明 - 设置操作查询而不是循环查询等,你会得到更好的结果。 –

+0

考虑到我我正在使用Spring/Roo/Hibernate应用程序。您正在讨论在函数的开头放置“@Transactional(readOnly = true)”...是的? – chora