Mis*_*erY 7 java annotations hibernate
为什么仅设置@Entity注释是不够的?
我错过了这一点(表现?)?
谢谢.
注释是不够的,因为如果没有某种显式声明,hibernate不会知道带注释的类的位置.理论上,它可以扫描类路径中的每个类并查找注释,但对于较大的项目,这将非常昂贵.
您可以使用带有帮助程序的spring,它可以让您指定hibernate对象所在的程序包,它只会扫描这些程序包以获取@Entity.如果您将所有对象都包含在少量固定包中,则效果很好.
例如
<bean id="referenceSessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="packagesToScan">
<array>
<value>com.xxx.hibernate.objects</value>
</array>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
以上是Spring声明.如果您不熟悉上述语法,则可以通过编程方式构建它.
AnnotationSessionFactoryBean sfb = new AnnotationSessionFactoryBean();
sfb.setDataSource( ds );
sfb.setHibernateProperties( hibProps);
sfb.setPackagesToScan( ... );
sfb.initialise();
SessionFactory sf = sfb.getObject();
Run Code Online (Sandbox Code Playgroud)
它支持一堆配置选项,因此您可以使用原始属性或传入预配置的数据源.
| 归档时间: |
|
| 查看次数: |
4637 次 |
| 最近记录: |