【问题标题】:Spring and Hibernate: Function of annotatedClasses and packagesToScanSpring 和 Hibernate:annotatedClasses 和 packagesToScan 的功能
【发布时间】:2015-10-29 01:43:16
【问题描述】:

我已经阅读了大量 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>

【问题讨论】:

    标签: spring hibernate sessionfactory


    【解决方案1】:

    annotatedClass 指定要向此 Hibernate SessionFactory 注册的带注释的实体类。使用这种方法,您应该手动注册所有使用@Entity 注释的实体,这不是可扩展的解决方案。更好的方法是通过packagesToScan 属性指定带注释的包(而不是单个类)的名称。每当您向这些包中添加新实体时,它都会自动注册。

    【讨论】:

    • 所以它是一个或另一个。两个都不需要吗?谢谢一百万
    • 你可以同时使用,但packagesToScan 对我来说更有意义。
    猜你喜欢
    • 2015-08-17
    • 2015-02-15
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    • 2020-02-29
    • 2020-06-02
    • 2018-12-02
    • 1970-01-01
    相关资源
    最近更新 更多