@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")兩個屬性:一、name:設置主鍵生成器的名稱,這個名稱能夠被@GeneratedValue的generarot引用。 二、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; }