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

如何从Spring获取Hibernate Configuration对象?

申颖逸
2023-03-14
问题内容

我正在尝试在非Spring代码中获取Spring定义的Hibernate
Configuration和SessionFactory对象。以下是我的applicationContext.xml文件中的定义:

码:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
   <property name="hibernateProperties">
    <props>
      <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
      <prop key="hibernate.show_sql">true</prop>
      <prop key="hibernate.hbm2ddl.auto">update</prop>
      <prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
      <prop key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop>
    </props>
   </property>
   <property name="dataSource">
    <ref bean="dataSource"/>
   </property>
    </bean>

如果现在调用getBean(“ sessionFactory”),我将返回一个$ Proxy0对象,该对象似乎是Hibernate
SessionFactory对象的代理。但这不是我想要的-
我需要LocalSessionFactoryBean本身,因为我需要访问Configuration以及SessionFactory。

我需要Configuration对象的原因是我们的框架能够使用Hibernate的动态模型在运行时自动插入映射。这就要求我们更改配置并重建SessionFactory。确实,我们要做的就是获取Spring中已经存在的Hibernate配置,以便那些在Spring中已经拥有该信息的客户无需将其复制到hibernate.cfg.xml文件中即可。使用我们的hibernate功能。


问题答案:

Spring容器的一个不起眼的特点是在&前缀:

当您需要向html" target="_blank">容器询问实际FactoryBean实例本身而不是容器所产生的bean时,请&在调用的getBean方法 时在bean
id前面加上“&”符号(不带引号)ApplicationContext。因此,对于FactoryBeanID 为的给定
myBean,调用getBean("myBean") 容器会返回的乘积 FactoryBean,调用会
getBean("&myBean")返回 FactoryBean实例本身。

因此,在您的情况下,using
getBean("&sessionFactory")应该返回LocalSessionFactoryBean实例本身。然后,您可以调用.getConfiguration()获取Configuration对象。



 类似资料:
  • 我有一个Spring MVC项目,我配置了jackson库来自动将响应(java对象)转换为json,它在GET请求中工作如下。 但是当我试图处理POST请求并从json的请求中获取对象时,我会得到错误“400 Bad request”,因为Spring无法从json创建对象顺序。我放置了与GET方法响应相同的json文件,因此我假设该文件格式良好。 如果我将@RequestBody类更改为Str

  • 我是Javascript新手,我正试图从包含多个对象的数组中获取id键的值。 通过 for..在循环中,我需要对象的id - 如1,2或3 - 与不同的值进行比较。 我试着这样做: 但是,我这样做了,删除Id值返回未定义。 我想不通为什么返回未定义,我无法解决这个问题。 我希望我能很好地表达自己,对不起我的英语不好。

  • 问题内容: 我有一个JSON对象,其中有一个字段是生日日期: 但是该方法在JSONObject中不存在。 如何在用户对象中设置出生日期? 问题答案: 您可能会喜欢以下内容, 希望对您有所帮助:)

  • 问题内容: 我正在与集成的android应用程序上工作。我正在使用fql查询从Facebook获取信息。我的fql方法是 myjson对象具有我想要的所有信息。像这样 问题是如何将该信息存储到不同的阵列中? 请为此修改一些代码。 问题答案: 检查http://www.androidhive.info/2012/01/android-json-parsing- tutorial/

  • 我对这些字段有以下要求: 付款(类型付款)- 令牌(字符串) 类型(字符串) cvv(字符串) 我试图通过访问字段令牌,但我真的不知道如何使其工作。我发现了一些与反射相关的东西,但我真的不知道它是如何工作的。 我已经尝试了类似的东西,但我仍然不知道如何获取这个字符串“令牌”:

  • 如何从HttpSessionAttributeListener获取请求对象以查找用户的IP地址? 谢谢