当前位置: 首页 > 面试题库 >

从会话工厂以编程方式获取休眠的默认架构名称?

傅高逸
2023-03-14
问题内容

我想知道是否可以通过某种方式从会话工厂获取默认架构名称?我需要得到它的原因是因为我必须使用一个本机SQL,并且我有多个会话工厂用于多个模式和一个数据源。所有生成的hibernate查询都由具有选择访问其他模式权限的单个用户运行。


问题答案:

我刚刚发现,hibernate具有{h-schema}替换项,可以在本机sql查询中使用。因此,当您连接到oracle数据库中的一个架构并希望针对不同的架构执行查询时,此工作就可以轻松完成。例如:

select * from {h-schema}table_name

replaceAll鉴于每个会话工厂都配置了"hibernate.default_schema"属性,因此Hibernate
无需处理查询手册,而是会处理所有事情。



 类似资料:
  • 问题内容: 我刚刚有了Hibernate Session和Connection之间的关系。但是现在,我又遇到一个问题:hibernate会话工厂如何管理会话?在以下代码段中:DAO类的save()方法: 当我们调用时,它将创建一个新会话(通过ThreadLocal附加到当前线程),该会话也附加到JDBC连接。但是,正如您所看到的,我们不需要关闭该会话(会话。 close()),都没有连接。那么,H

  • 问题内容: 除以下内容外,我们还有其他区别吗?另外请验证以下内容是否正确 每个应用程序一个对象,每个客户端一个对象。 是创建和管理。是为映射的类提供CRUD接口,并提供更多功能。 是线程安全的,而不是线程安全的 问题答案: 首先,询问这些接口之间的区别没有任何意义。好像在问汽车制造厂和汽车之间的区别。制造工厂是生产汽车的地方。同样,是一个将创建对象的实例。

  • 问题内容: 我想从hibernate会话中获取jdbc连接。hibernate会话中有方法,即session.connection();。但已被弃用。我知道这仍然有效,但是我不想使用已弃用的方法,因为我确定他们必须为此提供一些替代方法?在http://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/Session.html上,连接方法api表示

  • 问题内容: 我在hibernate和延迟加载方面遇到问题。 背景:我有一个Spring MVC Web应用程序,我将Hibernate用于持久层。我正在使用OpenSessionInViewFilter使我能够在视图层中延迟加载实体。我正在扩展HibernateDaoSupport类,并使用HibernateTemplate保存/加载对象。一切都进行得很好。直至现在。 问题:我有一个可以通过Web

  • 问题内容: 我需要知道执行某些DDL的SQL脚本中当前的默认架构是什么。我不需要设置架构,但是我确实需要在变量中获取对它的引用(名称或ID)。该脚本可能会以Windows登录名的身份运行,因此以下操作还不够: 我曾想过要通过在当前模式中创建一个随机命名的对象,然后在information_schema中查看其详细信息来做到这一点,但是有人能用一种更整洁的方式吗? 我正在使用SQL Server 2

  • 问题内容: 我有一个使用spring和hibernate的3层应用程序(控制器->服务-> dao),并且事务已应用于服务层。我没有配置OpenSessionInViewInterceptor或OpenSessionInViewFilter,我想知道hibernate会话控制行为。每个交易还是每个请求的开放会话?谢谢! 问题答案: 如果使用,则a 将绑定到当前线程,并在事务结束时通过commit或