我正在使用Spring 2.5.5
和Hibernate 3.2.1
。
我有以下实体:
@Entity
@Table(schema = "mailing", name = "mailing")
public class Mailing {
//Fields, GET, SET
}
问题是我需要在多个项目中使用该实体,在某些项目中我们应该指定不同的schema_name
。我想将此实体类放在公共位置以避免代码重复。例如,Project A
架构名称为commmon_maling
,但Project B
架构名称仅为mailing
。是否可以在我们定义springApplicationContext.xml
bean的SessionFactory
中指定架构名称,如下所示:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses">
<list>
<!-- Some classes -->
</list>
</property>
</bean>
答案 0 :(得分:1)
您可以定义hibernateProperties
属性并在其中添加架构,例如
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses">
<list>
<!-- Some classes -->
</list>
</property>
<property name="hibernateProperties">
<props>
...
<property name="hibernate.default_schema">yourschema</property>
...
</props>
</property>
</bean>