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