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...