我已阅读Spring文档的实质内容,但截止日期限制了我的阅读。我的Spring Hibernate应用程序正在运行。但是我不确定一些内在的机制。
有人可以解释annotatedClasses如何运作,为什么我们需要它以及hibernate类映射以及它的函数与包扫描的不同之处?
<bean id="sfhbmSessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="annotatedClasses">
<list>
<value>com.prototype2.model.user.IdentityInformation</value>
<value>com.prototype2.model.user.IdentityInformationType</value>
<value>com.prototype2.model.user.User</value>
<value>com.prototype2.model.user.UserChild</value>
<value>com.prototype2.model.user.UserMain</value>
........
</list>
</property>
<property name="mappingResources">
<list>
<value>hibernatemap.cfg.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="temp.use_jdbc_metadata_defaults">false</prop>
<prop key="hibernate.archive.autodetection">class</prop>
<prop key="show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.enable_lazy_load_no_trans">true</prop>
</props>
</property>
<property name="packagesToScan">
<array>
<value>com.prototype2.model.assessment</value>
<value>com.prototype2.model.user</value>
<value>com.prototype2.model.scores</value>
<value>com.prototype2.model.business</value>
<value>com.prototype2.dao.factory</value>
<value>com.prototype2.dao.user</value>
</array>
</property>
</bean>
答案 0 :(得分:3)
annotatedClass
指定要在此Hibernate SessionFactory中注册的带注释的实体类。使用此方法,您应该手动注册所有使用@Entity
注释的实体,这不是可扩展的解决方案。更好的方法是通过packagesToScan
属性指定带注释的包的名称(而不是单个类)。无论何时向这些包添加新实体,都将自动注册。