JPA 的基本註解

基本註解

基本註解包括@Entity、@Table、@Id、@IdClass、
@GeneratedValue、@Basic、@Transient、@Column、@Temporal、
@Enumerated、@Lob。java

  • @Id定義屬性爲數據庫的主鍵,一個實體裏面必須有一個。數據庫

  • @IdClass利用外部類的聯合主鍵。 UserBlogKey.class代碼 UserBlogEntity.java要稍加改動 UserBlogRepository中的改動 使用的時候fetch

  • @GeneratedValue爲主鍵生成策略 GenerationType3d

  • @Basic表示屬性是到數據庫表的字段的映射。若是實體的字段上 沒有任何註解,默認即爲@Basic。 對象

  • @Transient表示該屬性並不是一個到數據庫表的字段的映射,表示非持久化屬性,與@Basic做用相反。JPA映射數據庫的時候忽略它。blog

  • @Column定義該屬性對應數據庫中的列名。 內存

  • @Temporal用來設置Date類型的屬性映射到對應精度的字段。it

  • @Enumerated很好用,直接映射enum枚舉類型的字段。 io

這時插入兩條數據,數據庫裏面的值是MAIL/FMAIL,而不是「男 性」/「女性」。若是咱們用@Enumerated(EnumType.ORDINAL),那麼 這時數據庫裏面的值是0,1。可是實際工做中,不建議用數字下標, 由於枚舉裏面的屬性值是會不斷新增的,若是新增一個,位置變化了 就慘了。class

  • @Lob 將屬性映射成數據庫支持的大對象類型,支持如下兩種數據庫類型的字段。 Clob、Blob佔用內存空間較大,通常配合@Basic(fetch=FetchType.LAZY)將其設置爲延遲加載。
相關文章
相關標籤/搜索