spring boot JPA中實體類常用註解

2022-07-03 23:24:13 字數 1374 閱讀 9390

spring boot jpa中的註解很多,引數也比較多。沒必要全部記住,但是經常檢視官方文件也比較麻煩,記錄一下一些常用的註解。通過一些具體的例子來幫助記憶。

@entity

@table(name = "flow")

@sqldelete(sql = "update flow set deleted = 1 where id = ?")

@where(clause = "deleted = 0")

public class flow

@preupdate

protected void onupdate()

@column(columndefinition = "text")

private string message;

private deleted = 0;

}

1、entity 表示這個類是乙個實體類,對應資料庫中的乙個表

2、@table 指定這個類對應資料庫中的表名。如果這個類名的命名方式符合資料庫的命名方式,可以省略這個註解。如flowtype類名對應表名flow_type。

3、@id 指定這個欄位為表的主鍵

4、@generatedvalue(strategy=generationtype.identity) 指定主鍵的生成方式,一般主鍵為自增的話,就採用generationtype.identity的生成方式

5、@column(updatable = false) @columun 註解針對乙個字段,對應表中的一列。有很多引數,name表示對應資料表中的欄位名。insertable 表示插入式是否更新。updateable,表示update的時候是否更新;columndefinition表示字段型別,當使用jpa自動生成表的時候比較有用。

6、@prepersist 表示持久化之前執行

7、@preupdate 表示執行update操作之前執行。

8、sqldelete表示當執行jpa中的delete操作時,執行的語句

9、@where 當執行查詢語句時,會附帶這個條件。這個和上面的一起使用,可以實現軟刪除

上述**表示資料庫中有乙個表名為flow的表。主鍵為id,為自增。createtime為建立時間,當第一次插入的時候產生時間,後續不會隨著update變動。而operatetime僅在update的時候更新。message是string型別,預設建立的字段為varchar型別,這裡指定為text。

我們建立資料庫的時候,推薦每個表都要有建立時間和更新時間,但是沒必要每個表都寫重複的**,可以用下面的註解來解決

public class baseentity implements serializable

@preupdate

protected void onupdate()

Spring Boot JPA中關聯表的使用

spring boot jpa中關聯表的使用 本文中,我們會將會通過乙個book和category的關聯關係,來講解如何在jpa中使用。我們還是使用h2記憶體資料庫來做測試 org.springframework.bootgroupid spring boot starter data jpaart...

Spring Boot JPA 命名規則

一 常用規則速查 1 and 並且 2 or 或 3 is,equals 等於 4 between 兩者之間 5 lessthan 小於 6 lessthanequal 小於等於 7 greaterthan 大於 8 greaterthanequal 大於等於 9 after 之後 時間 10 be...

SpringBoot JPA常用註解

就像 table註解用來標識實體類與資料表的對應關係類似,column註解來標識實體類中屬性與資料表中字段的對應關係。column name broker id columndefinition bigint 11 nullable false private long brokerid id co...