Hibernate3.5注解笔记
记录几个今天配置Hibernate3.5注解时的问题。
1)关于Hibernate原XML中的compose-id(复合主键)用注解配置
有几种方法:
第一种:直接在对应的复合主键上添加@Id
@Entity
publicclassEmployee
{
@IdStringempName;
@IdDatebirthDay;
第二种:使用@IdClass注解
publicclassEmployeePKimplementsSerializable
{
privateStringempName;
privateDatebirthDay;
。。。。
@IdClass(EmployeePK.class)
@Entity
publicclassEmployee
{
@IdStringempName;
@IdDatebirthDay;
第三种:嵌入式的
@Embeddable
publicclassEmployeePKimplementsSerializable
{
@Column
privateStringempName;
@Column
privateDatebirthDay;
。。。。
@Entity
publicclassEmployee
{
@IdEmployeePKemp;
2)关于Hibernate的注解的包不能自动扫描的问题
这个问题需升级Spring到2.5.6,里面的AnnotationSessionFactoryBean带了一个属性:packagesToScan
<beanid="sessionFactory"class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<propertyname="dataSource">
<reflocal="euroSportDataSource"/>
</property>
<propertyname="packagesToScan">
<list>
<value>com.yourcompany.security.obj</value>
<value>com.yourcompany.obj</value>
</list>
</property>
3)关于Hibernate的POJO类存在继承的情况
@MappedSuperclass
publicabstractclassAbstractCmsDto{}
@Entity
@Table(name="S_RESC")
publicclassSecResextendsAbstractCmsDto{}
如上这样,在基类中添加@MappedSuperclass注解,并将基类中的字段进行相应的注解。
当然,在子类中可以改写基类中的定义。