最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于@Entity和@Table注解的用法詳解

 更新時間:2022年01月15日 11:16:36   作者:光陰不負(fù)卿  
這篇文章主要介紹了關(guān)于@Entity和@Table注解的用法詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

@Entity和@Table注解的用法

@Entity注解

@Entity注解和@Table注解都是Java Persistence API中定義的一種注解。

@Entity說明這個class是實(shí)體類,并且使用默認(rèn)的orm規(guī)則,即class名就是數(shù)據(jù)庫表中表明,class字段名即表中字段名。@Entity注解指明這是一個實(shí)體Bean。

import lombok.Data;?
import javax.persistence.*;?
@Data
@Entity(name = "t_book")
public class Book {
? ? @Id
? ? @GeneratedValue(strategy = GenerationType.IDENTITY)
? ? private Integer id;
? ? @Column(name = "book_name")
? ? private String name;
? ? @Column(name = "book_author")
? ? private String author;
? ? private Float price;
? ? @Transient
? ? private String description;
}
  • @Entity注解表示該類是要給實(shí)體類,在羨慕啟動時會根據(jù)該類自動生成一張表,表的名稱即@Entity注解中name的值,如果不配置name,默認(rèn)表明為類名
  • 所有的實(shí)體類都要有主鍵,@Id注解表示該屬性是一個主鍵,@GeneratedValue注解表示注解自動生成,strategy則表示主鍵的生成策略
  • 默認(rèn)情況下,生成的表中字段的名稱就是實(shí)體類中屬性的名稱,通過@Column注解可以定制生成的字段屬性,name表示該屬性對應(yīng)的數(shù)據(jù)表中字段的名稱,nullable表示該字段非空
  • @Transient注解表示在生成數(shù)據(jù)庫中的表時,該屬性被忽略,即不生成對應(yīng)的字段 

@Table注解

@Table注解默認(rèn)情況下只會完成表和實(shí)體之間的映射,聲明才對象映射到數(shù)據(jù)庫的數(shù)據(jù)表,通過它可以為實(shí)體指定表(table)

@Data
@Table(name="book")
public class Book{
? ? @Id
? ? private Integer id;
? ? @Column(name="book_name")
? ? private String name;
? ? ...
}
  • 常用屬性:name  指定表
  • @Table(name = "book")

@Table注解是一個非必須的注解,@Table注解指定了Entity所要映射的數(shù)據(jù)庫表,其中@Table.name()用來指定映射表的表名。

如果同時使用了@Entity(name="student")和@Table(name="book"),最終對應(yīng)的表名是book,這說明優(yōu)先級:@Table>@Entity

@Entity和@Table的區(qū)別

Java Persistence API定義了一種定義,可以將常規(guī)的普通Java對象(有時被稱作POJO)映射到數(shù)據(jù)庫。這些普通Java對象被稱作Entity Bean。除了是用Java Persistence元數(shù)據(jù)將其映射到數(shù)據(jù)庫外,Entity Bean與其他Java類沒有任何區(qū)別。

事實(shí)上,創(chuàng)建一個Entity Bean對象相當(dāng)于新建一條記錄,刪除一個Entity Bean會同時從數(shù)據(jù)庫中刪除對應(yīng)記錄,修改一個Entity Bean時,容器會自動將Entity Bean的狀態(tài)和數(shù)據(jù)庫同步。

@Entity和@Table的區(qū)別:

@Entity說明這個class是實(shí)體類,并且使用默認(rèn)的orm規(guī)則,即class名即數(shù)據(jù)庫表中表名,class字段名即表中的字段名

如果想改變這種默認(rèn)的orm規(guī)則,就要使用@Table來改變class名與數(shù)據(jù)庫中表名的映射規(guī)則,@Column來改變class中字段名與db中表的字段名的映射規(guī)則

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

临安市| 东至县| 松桃| 柏乡县| 治多县| 大名县| 黄骅市| 泾源县| 鄂温| 综艺| 镇康县| 莱州市| 道真| 孟村| 龙胜| 信丰县| 双鸭山市| 邯郸县| 朔州市| 重庆市| 堆龙德庆县| 固镇县| 上思县| 丽江市| 盐山县| 广安市| 广河县| 凤台县| 玉门市| 同德县| 洞头县| 名山县| 黄平县| 黑水县| 宣城市| 伊宁市| 连云港市| 淳安县| 安阳市| 新巴尔虎右旗| 绥德县|