@Entity(name = "T_SYS_LOGIN")//将pojo类标记成实体,可以指定一个name属性,指定实体类的名称。默认一该类的类名作为实体类的名称public class SysLogin extends BaseBean{ /* 主键 */ @Id @GeneratedValue(generator = "uuid")自动生成值 //genetator:用于配合GenerationType.SEQUENCE、GenerationType.TABLE使用 @GenericGenerator(name = "uuid", strategy = "uuid")两个属性:1、name:设置主键生成器的名称,这个名称可以被@GeneratedValue的generarot引用。 2、strategy:必须属性,用于设置主键的生成策略 @Column(name = "OID")//@Clounm:指定某个属性所映射的数据列的详细信息(列名,字段长度等)name:指定该列的列名。默认值是成员的变量名 private String oid; /* 所属应用OID */ @Column(name = "APP_OID", length = 64) private String appOid; /* 所属应用 */ @ManyToOne(targetEntity = SysApp.class, cascade = CascadeType.REFRESH) //targetEntity:指定关联实体的类名(默认反射判断实现,可以不指定) //cascade:级联.级联在编写触发器时经常用到,触发器的作用是当 主控表信息改变时,用来保证其关联表中数据同步更新 //CascadeType.ALL(指定所有的持久化操作都级联到关联实体) //CascadeType.MERGE:级联合并(级联更新)将MERGE操作级联到关联实体.指A类新增或者变化,会级联B对象(新增或者变化) //CascadeType.PERSIST,级联新增(又称级联保存)只有A类新增时,会级联B对象新增。若B对象在数据库存(跟新)在则抛异常(让B变为持久态) //CascadeType.REFRESH,级联刷新:获取order对象里也同时也重新获取最新的items时的对象。对应EntityManager的refresh(object)方法有效。即会重新查询数据库里的最新数据 (用的比较少) //CascadeType.ALL:以上四种都是 //CascadeType.REMOVE:级联删除:对order对象删除也对items里的对象也会删除。对应EntityManager的remove方法 //综上所述:一般的,用CascadeType.MERGE:级联合并(级联更新)就能达到级更新同时又稳定不报错。 @HibernateJoinColumn(name = "APP_OID", insertable = false, updatable = false) //进行外键映射 name:指定外键列的列名 insertable:指定该列是否包含在Hibernate生成的insert语句的列列表中,默认值:true updatable:指定该列是否包含在Hibernate生成的update语句的列列表中,默认值:true private SysApp sysApp; /* 账号 */ @Column(name = "ACCOUNT", length = 200) @BeanValidationFieldName(message = "账号")基于注释的校验机制 @NotEmpty @Length(min = 1, max = 30) private String account; /** * 在线状态 */ @Transient 修饰不想持久保存的属性 private String onlineFlag;}