id:被映射的类必须定义对应数据库表主键字段。大多数类有一个JavaBeans风格的属性, 为每一个实例包含唯一的标识。<id> 元素定义了该属性到数据库表主键字段的映射。 id标签必须在property标签之前完成。
generator:可选的<generator>子元素是一个Java类的名字, 用来为该持久化类的实例生成唯一的标识。
常用的有identity(自增sqlserver、mysql)、sequence(自增Oracle)、uuid(32位String)、native(根据方言自动选择)、foreign(使用另外一个相关联的对象的标识符)。assigned,填充数据的时候手动分配主键的值。
<property name="name" unique="true" not-null="true" length="30"/>
如果实体类和实体类中的属性和sql中的关键字一样,则必须使用table 或者column指定一个别名。
实体类的设计原则:
1.实现一个默认的无参构造方法;
2.提供一个标识属性(可选);
3.使用非final类(可选),因为lazy机制是提供了一个类继承该类,final类不能继承。