色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

JPA實體類中的注解介紹

科技綠洲 ? 來源:Java技術(shù)指北 ? 作者:Java技術(shù)指北 ? 2023-09-25 14:42 ? 次閱讀

今天給大家介紹一下 JPA 實體類中的注解,希望能對大家有幫助。

基本注解

@Entity

標(biāo)注于實體類聲明語句之前,指出該 Java 類為實體類,將映射到指定的數(shù)據(jù)庫表。

  • name(可選):實體名稱。 缺省為實體類的非限定名稱。該名稱用于引用查詢中的實體。

不與 @Table 結(jié)合時,表名默認(rèn)為類名的 SnakeCase(蛇形命名法),若使用name屬性,則表名為 name 值。

//以下三個類皆映射表名 student_info 
@Entity  
public class StudentInfo{...}

@Entity(name="student_info")  
public class StudentInfo{...}

@Entity
@Table(name = 'student_info')
public class StudentInfo{...}

@Table

當(dāng)實體類與其映射的數(shù)據(jù)庫表名不同名時需要使用@Table標(biāo)注說明,該標(biāo)注與@Entity標(biāo)注并列使用,置于實體類聲明語句之前。

  • name:用于指明數(shù)據(jù)庫的表名。
  • catalog、schema:用于設(shè)置表所屬的數(shù)據(jù)庫目錄或模式,通常為數(shù)據(jù)庫名。Mysql不支持catalog,schema是數(shù)據(jù)庫名。一般不需要設(shè)置。
  • uniqueConstraints:用來批量命名唯一鍵,其作用等同于多個:@Column(unique = true),一般不需要設(shè)置。
@Entity
@Table(name = "student_info", uniqueConstraints = {@UniqueConstraint(columnNames = "class_id")})
public class StudentInfo {
    @Column(name = "class_id")
    private String classId;
}

@Basic(未加注解的默認(rèn)注解)

表示一個簡單的屬性到數(shù)據(jù)庫表的字段的映射,對于沒有任何注解的屬性,默認(rèn)即為 @Basic 。

  • fetch: 表示該屬性的讀取策略,其中 EAGER (默認(rèn))表示立即加載,LAZY 表示延遲加載。
  • optional:表示該屬性是否允許為 null ,默認(rèn)為 true 。

@Transient

  • 表示該屬性并非一個到數(shù)據(jù)庫表的字段的映射,ORM 框架將忽略該屬性。
  • 如果一個屬性并非數(shù)據(jù)庫表的字段映射,就務(wù)必將其標(biāo)示為@Transient,否則,ORM框架默認(rèn)其注解為@Basic 。

@Column

當(dāng)實體的屬性與其映射的數(shù)據(jù)庫表的列不同名時需要使用@Column 標(biāo)注說明,該注解通常置于實體的屬性前或?qū)傩缘膅etter方法之前,還可與 @Id 標(biāo)注一起使用。

  • name:用于設(shè)置映射數(shù)據(jù)庫表的列名。
  • unique:是否是唯一標(biāo)識,默認(rèn)為 false(不唯一)
  • nullable:否允許為 null,默認(rèn)為true(null)
  • insertable:表示在 ORM 框架執(zhí)行插入操作時,該字段是否應(yīng)出現(xiàn) INSERT 語句中,默認(rèn)為true
  • updatable:表示在 ORM 框架執(zhí)行更新操作時,該字段是否應(yīng)該出現(xiàn)在 UPDATE 語句中,默認(rèn)為 true。對于一經(jīng)創(chuàng)建就不可以更改的字段,該屬性非常有用,如對于birthday字段。或者創(chuàng)建時間/注冊時間(可以將其設(shè)置為 false 不可修改)。
  • length:數(shù)據(jù)長度,僅對String類型的字段有效,默認(rèn)值255
  • precision、scale:表示精度,當(dāng)字段類型為double時,precision表示數(shù)值的總長度,scale表示小數(shù)點所占的位數(shù),默認(rèn)值均為0。
  • columnDefinition:表示該字段在數(shù)據(jù)庫中的實際類型。通常ORM框架可以根據(jù)屬性類型自動判斷數(shù)據(jù)庫中字段的類型,但是如果要將 String 類型映射到特定數(shù)據(jù)庫的 BLOB 或 TEXT 字段類型,該屬性非常有用。

@Id

用于聲明一個實體類的屬性映射為數(shù)據(jù)庫的主鍵列。

@GeneratedValue

  • JPA通用策略生成器,通過 strategy 屬性指定。
  • 定義了以下幾種可供選擇的策略:
    • AUTO:JPA 自動選擇合適的策略,是默認(rèn)選項;
    • IDENTITY:采用數(shù)據(jù)庫 ID自增長的方式來自增主鍵字段,Oracle 不支持這種方式;
    • SEQUENCE:通過序列產(chǎn)生主鍵,通過 @SequenceGenerator 注解指定序列名,MySql 不支持這種方式
    • TABLE:通過表產(chǎn)生主鍵,框架借由表模擬序列產(chǎn)生主鍵,使用該策略可以使應(yīng)用更易于數(shù)據(jù)庫移植。該策略一般與另外一個注解一起使用@TableGenerator。
  • 默認(rèn)情況下,JPA 自動選擇一個最適合底層數(shù)據(jù)庫的主鍵生成策略:SqlServer 對應(yīng) IDENTITY,MySQL 對應(yīng) AUTO。
  • generator:使用指定的主鍵生成器時,這里設(shè)置為生成器名稱。

@GenericGenerator

自定義主鍵生成策略

  • name:生成器名稱
  • strategy:預(yù)定義的 Hibernate 策略或完全限定的類名。
@Data
@Entity
@Table(name = "student_info")
public class StudentInfo {
    @Id
    @Column(name = "id")
    @GenericGenerator(name="idGenerator", strategy="uuid")
    @GeneratedValue(generator = "idGenerator")
    private String id;

    @Transient
    private String age;

    @Column(name = "name")
    private String name;
}

其他注解

@Enumerated

直接映射枚舉類型的字段。

  • value:
    • ORDINAL:映射到數(shù)據(jù)庫字段為數(shù)字(默認(rèn))
    • String:映射到數(shù)據(jù)庫字段為字符串
@Entity
@Data
@Table(name = "StudentInfo")
public class Student {
    @Column
    @Enumerated
    private Sex sex;
}

@Temporal

對于日期時間屬性映射時,可使用 @Temporal 注解來調(diào)整精度。

  • DATE:日期
  • TIME:時間
  • TIMESTAMP:日期時間
@Data
@Entity
@Table(name = "student_info")
public class Student {
    @Column
    @Temporal(TemporalType.DATE)
    private Date birthday;
}

@DynamicInsert、@DynamicUpdate

  • @DynamicInsert:設(shè)置為true,表示insert對象的時候,生成動態(tài)的insert語句,如果這個字段的值是null就不會加入到insert語句中。
  • @DynamicUpdate:設(shè)置為true,表示update對象的時候,生成動態(tài)的update語句,如果這個字段的值是null就不會被加入到update語句中。
@Data
@Entity
@Table(name = "user_info")
@DynamicInsert
@DynamicUpdate
public class User {
    @Id
    @Column(name = "id")
    @GenericGenerator(name="idGenerator", strategy="uuid")
    @GeneratedValue(generator = "idGenerator")
    private String id;

    @Column(name = "name")
    private String name;

    @Basic
    private Integer age;

    @Column(name = "create_time")
    private Long createTime;

    @Column(name = "remark")
    private String remark;
}

@Access

指定實體的訪問模式(Access mode),包括AccessType.FIELD及AccessType.PROPERTY。

  • AccessType.FIELD: 字段訪問(@Column注解在屬性上),通過字段來獲取或設(shè)置實體的狀態(tài),getter和setter方法可能存在或不存在。這樣JPA默認(rèn)的訪問類型為AccessType.FIELD。
  • AccessType.PROPERTY: 屬性訪問(@Column注解在get方法上),持久化屬性必須有g(shù)etter和setter方法,屬性的類型由getter方法的返回類型決定,同時必須與傳遞到setter方法的單個參數(shù)的類型相同。這樣JPA默認(rèn)的訪問類型為AccessType.PROPERTY。

復(fù)合主鍵

@EmbeddedId + @Embeddable

當(dāng)需要多個屬性作為復(fù)合主鍵時,可以把該屬性做為一個內(nèi)部類嵌套在實體類中,使用@EmbeddedId + @Embeddable實現(xiàn):

  • @EmbeddedId:復(fù)合主鍵
  • @Embeddable:注釋Java類的,表示類是嵌入類:
    • 必須要實現(xiàn)Serializable接口
    • 需要有無參的構(gòu)造函數(shù)
// 復(fù)合主鍵類
@Data
@Embeddable
public static class StudentId implements Serializable {

    @Column(name = "id")
    private Integer id;

    @Column(name = "class_id")
    private Integer classId;
}

//實體類
@Data
@Entity
@Table(name = "student_info")
public class StudentInfo {

    

    @EmbeddedId
    private StudentId studentId;

    @Column(name = "name")
    private String name;

}

@IdClass

注解復(fù)合主鍵的類,復(fù)合主鍵類必須滿足:

  • 實現(xiàn)Serializable接口;
  • 有默認(rèn)的public無參數(shù)的構(gòu)造方法;
  • 重寫equals和hashCode方法。
// 復(fù)合主鍵類
@Data
@Embeddable
public static class StudentId implements Serializable {

    @Column(name = "id")
    private Integer id;

    @Column(name = "class_id")
    private Integer classId;
}

//實體類
@Data
@Entity
@IdClass(StudentId.class)
@Table(name = "student_info")
public class StudentInfo {

    @EmbeddedId
    private StudentId studentId;

    @Column(name = "name")
    private String name;

}

@Embedded + @AttributeOverride

  • @Embedded:注釋屬性的,表示該屬性的類是嵌入類。
  • @AttributeOverrides:里面只包含了@AttributeOverride類型數(shù)組。
  • @AttributeOverride:包含要覆蓋的@Embeddable類中字段名name和新增的@Column字段的屬性。
// 復(fù)合主鍵類
@Data
@Embeddable
public static class StudentId implements Serializable {
    private Integer id;
    private Integer classId;
}

@Data
@Entity
@Table(name = "student_info")
public class StudentInfo {

    @Embedded
    @AttributeOverrides( {
            @AttributeOverride(name = "id", column = @Column(name = "id")),
            @AttributeOverride(name = "classId", column = @Column(name = "class_id")) 
            })
    private StudentId id;

    @Column(name = "name")
    private String name;

}

實體間關(guān)聯(lián)關(guān)系

@OneToOne

實體間一對一的關(guān)系。

  • fetch:立即加載和延遲加載
  • cascade:當(dāng)前類對象操作了之后,級聯(lián)對象的操作。
    • REMOVE:級聯(lián)刪除操作。刪除當(dāng)前實體時,與它有映射關(guān)系的實體也會跟著被刪除。
    • MERGE:級聯(lián)更新(合并)操作。當(dāng)前對象中的數(shù)據(jù)改變,會相應(yīng)地更新級聯(lián)對象中的數(shù)據(jù)。
    • DETACH:級聯(lián)脫管/游離操作。如果要刪除一個實體,但是它有外鍵無法刪除,你就需要這個級聯(lián)權(quán)限了。它會撤銷所有相關(guān)的外鍵關(guān)聯(lián)。
    • REFRESH:級聯(lián)刷新操作。更新數(shù)據(jù)前先刷新對象和級聯(lián)對象,再更新。
    • PERSIST:級聯(lián)持久化(保存)操作。持久保存擁有方實體時,也會持久保存該實體的所有相關(guān)數(shù)據(jù)。
    • ALL,當(dāng)前類增刪改查改變之后,關(guān)聯(lián)類跟著增刪改查,擁有以上所有級聯(lián)操作權(quán)
  • mappedBy:擁有關(guān)聯(lián)關(guān)系的域,如果關(guān)系是單向的就不需要,雙向關(guān)系表,那么擁有關(guān)系的這一方有建立、解除和更新與另一方關(guān)系的能力,而另一方?jīng)]有,只能被動管理,這 個屬性被定義在關(guān)系的被擁有方。
  • orphanRemoval:如果設(shè)置為true,當(dāng)關(guān)系被斷開時,多方實體將被刪除。否則會將對象的引用置為null。
  • targetEntity:表示該屬性關(guān)聯(lián)的實體類型。該屬性通常不必指定,ORM 框架根據(jù)屬性類型自動判斷。

一對一關(guān)系的例子

people 表(id,name,sex,birthday,address_id) address 表(id,phone,zipcode,address)

People和Address是一對一的關(guān)系。

方式一:通過外鍵的方式(一個實體通過外鍵關(guān)聯(lián)到另一個實體的主鍵)

@JoinColum:保存表與表之間關(guān)系的字段,它要標(biāo)注在實體屬性上。一般修飾在主控方,用來定義一對一,一對多等關(guān)系列。

關(guān)聯(lián)的實體的主鍵一般是用來做外鍵的。但如果此時不想主鍵作為外鍵,則需要設(shè)置referencedColumnName屬性。

@Entity
public class People {
 
    @Id
    @Column(name = "id")
    @GenericGenerator(name = "idGenerator", strategy = "uuid")
    @GeneratedValue(generator = "idGenerator")
    private String id;
 
    @Column(name = "name")
    private String name;//姓名
 
    @Column(name = "sex")
    private String sex;//性別
 
    @Column(name = "birthday")
    private Date birthday;//出生日期
 
    @OneToOne(cascade=CascadeType.ALL)//People是關(guān)系的維護(hù)端,當(dāng)刪除 people,會級聯(lián)刪除 address
    @JoinColumn(name = "address_id", referencedColumnName = "id")
    private Address address;//地址
 
}

@Entity
public class Address {
    @Id
    @Column(name = "id")
    @GenericGenerator(name = "idGenerator", strategy = "uuid")
    @GeneratedValue(generator = "idGenerator")
    private String id;
 
    @Column(name = "phone")
    private String phone;//手機(jī)
 
    @Column(name = "zipcode")
    private String zipcode;//郵政編碼
 
    @Column(name = "address")
    private String address;//地址
}

方式二:通過關(guān)聯(lián)表的方式來保存一對一的關(guān)系。

關(guān)聯(lián)表:people_address (people_id,address_id)

@JoinTable:用于構(gòu)建一對多,多對多時的連接表,默認(rèn)會以主控表加下劃線加反轉(zhuǎn)表為表名。

  • JoinColumns:該屬性值可接受多個@JoinColumn,用于配置連接表中外鍵列的信息,這些外鍵列參照當(dāng)前實體對應(yīng)表的主鍵列。
  • inverseJoinColumns:該屬性值可接受多個@JoinColumn,用于配置連接表中外鍵列的信息,這些外鍵列參照當(dāng)前實體的關(guān)聯(lián)實體對應(yīng)表的主鍵列。
@Entity
public class People {
 
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", nullable = false)
    private Long id;//id
 
    @Column(name = "name")
    private String name;//姓名
 
    @Column(name = "sex")
    private String sex;//性別
 
    @Column(name = "birthday")
    private Timestamp birthday;//出生日期
 
    @OneToOne(cascade=CascadeType.ALL)//People是關(guān)系的維護(hù)端
    @JoinTable(name = "people_address",
            joinColumns = @JoinColumn(name="people_id"),
            inverseJoinColumns = @JoinColumn(name = "address_id"))
    private Address address;//地址
 
}

@Entity
public class Address {
    @Id
    @Column(name = "id")
    @GenericGenerator(name = "idGenerator", strategy = "uuid")
    @GeneratedValue(generator = "idGenerator")
    private String id;
 
    @Column(name = "phone")
    private String phone;//手機(jī)
 
    @Column(name = "zipcode")
    private String zipcode;//郵政編碼
 
    @Column(name = "address")
    private String address;//地址
}

@OneToMany和@ManyToOne

注解一對多和多對一關(guān)系。

  • JPA使用@OneToMany和@ManyToOne來標(biāo)識一對多的雙向關(guān)聯(lián)。一端(One)使用@OneToMany,多端(Many)使用@ManyToOne。
  • 在JPA規(guī)范中,一對多的雙向關(guān)系由多端(Many)來維護(hù)。就是說多端(Many)為關(guān)系維護(hù)端,負(fù)責(zé)關(guān)系的增刪改查。一端(One)則為關(guān)系被維護(hù)端,不能維護(hù)關(guān)系。
  • 一端(One)使用@OneToMany注釋的mappedBy屬性表明是關(guān)系被維護(hù)端。
  • 多端(Many)使用@ManyToOne和@JoinColumn來注釋屬性,@ManyToOne表明是多端,@JoinColumn設(shè)置在表中的關(guān)聯(lián)字段(外鍵)。

例子

  • 文章表 article (id,title,content,author_id)
  • 作者表 author (id,name)
@Entity
public class Author {
 
    @Id
    @Column(name = "id")
    @GenericGenerator(name = "idGenerator", strategy = "uuid")
    @GeneratedValue(generator = "idGenerator")
    private String id;
 
    @Column
    private String name;//姓名
 
    //級聯(lián)保存、更新、刪除、刷新;延遲加載。當(dāng)刪除用戶,會級聯(lián)刪除該用戶的所有文章
    //擁有mappedBy注解的實體類為關(guān)系被維護(hù)端
    //mappedBy="author"中的author是Article中的author屬性
    @OneToMany(mappedBy = "author",cascade=CascadeType.ALL,fetch=FetchType.LAZY)
    private List< Article > articleList;//文章列表
}
 
@Entity
public class Article {
 
    @Id
    @Column(name = "id")
    @GenericGenerator(name = "idGenerator", strategy = "uuid")
    @GeneratedValue(generator = "idGenerator")
    private String id;
 
    @Column
    private String title;
 
    @Lob  // 大對象,映射 MySQL 的 Long Text 類型
    @Basic(fetch = FetchType.LAZY) // 懶加載
    @Column(nullable = false) 
    private String content;//文章全文內(nèi)容
 
    //可選屬性optional=false,表示author不能為空。刪除文章,不影響用戶
    @ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},optional=false)
    //設(shè)置在article表中的關(guān)聯(lián)字段(外鍵)
    @JoinColumn(name="author_id")
    private Author author;//所屬作者
 
}

@ManyToMany

注解多對多的關(guān)系。

角色和權(quán)限是多對多的關(guān)系。一個角色可以有多個權(quán)限,一個權(quán)限也可以被很多角色擁有。

JPA中使用@ManyToMany來注解多對多的關(guān)系,由一個關(guān)聯(lián)表來維護(hù)。這個關(guān)聯(lián)表的表名默認(rèn)是:主表名+下劃線+從表名。

這個關(guān)聯(lián)表只有兩個外鍵字段,分別指向主表ID和從表ID。字段的名稱默認(rèn)為:主表名+下劃線+主表中的主鍵列名,從表名+下劃線+從表中的主鍵列名。

例子

  • 權(quán)限表 user_permission(id,permission_name)
  • 角色表 user_role(id,department_id, create_time, description, name, update_time)
  • 關(guān)聯(lián)表 user_role_permission 表(role_id, permission_id)

注意

  • 多對多關(guān)系中一般不設(shè)置級聯(lián)保存、級聯(lián)刪除、級聯(lián)更新等操作。
  • 本例中,由于加了@JoinTable注解,關(guān)聯(lián)關(guān)系表會按照注解指定的生成。否則去掉注解,指定Role為關(guān)系維護(hù)端,所以生成的關(guān)聯(lián)表名稱為:user_role_permission,關(guān)聯(lián)表的字段為:role_id 和permission_id。
@Data
@Entity
@Table(name = "user_permission")
public class Permission implements Comparable< Permission > {

    @Id
    @Column(name = "id")
    private String id;

    @Column(name = "permission_name")
    private String permissionName;

    @ManyToMany(mappedBy="permissions")
    private Set< Role > roles;

}

@Data
@Entity
@Table(name = "user_role")
public class Role {

    @Id
    @Column(name = "id")
    @GenericGenerator(name = "idGenerator", strategy = "uuid")
    @GeneratedValue(generator = "idGenerator")
    private String id;

    @Column(name = "create_time")
    private Long createTime;

    @Column(name = "update_time")
    private Long updateTime;

    @Column(name = "name")
    private String name;

    @Column(name = "description")
    private String description;

    @Column(name = "department_id")
    private String departmentId;

    @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinTable(name = "user_role_permission", joinColumns = {@JoinColumn(name = "role_id")},
            inverseJoinColumns = {@JoinColumn(name = "permission_id")})
    private List< Permission > permissions;

}

小結(jié)

以上就是 JPA 實體類中的注解介紹,文中的例子僅僅淺嘗輒止,希望大家可以實際應(yīng)用一下,后續(xù)我也會更深入的講解一些 JPA 的高級用法。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3874

    瀏覽量

    65358
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    838

    瀏覽量

    27207
  • BLOB
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    10219
  • 注解
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    2720
收藏 0人收藏

    評論

    相關(guān)推薦

    自然語言基礎(chǔ)技術(shù)之命名實體識別相對全面的介紹

    早期的命名實體識別方法基本都是基于規(guī)則的。之后由于基于大規(guī)模的語料庫的統(tǒng)計方法在自然語言處理各個方面取得不錯的效果之后,一大批機(jī)器學(xué)習(xí)的方法也出現(xiàn)在命名實體類識別任務(wù)。
    的頭像 發(fā)表于 04-17 10:12 ?5065次閱讀
    自然語言基礎(chǔ)技術(shù)之命名<b class='flag-5'>實體</b>識別相對全面的<b class='flag-5'>介紹</b>

    如何通過注解來優(yōu)化我們的Java代碼

    注解? Java注解是一種元數(shù)據(jù)形式,可以被添加到Java代碼的各種元素(、方法、字段等)上,以提供關(guān)于這些元素的額外信息。注解是在Ja
    的頭像 發(fā)表于 09-30 11:39 ?788次閱讀

    EJB3持久化規(guī)范

    .................................................................................................................................... 111.1 實體類的要求
    發(fā)表于 07-07 15:37

    在pom.xml增加mybatis-generator相關(guān)配置的步驟

    springboot配置mybatis-generator生成mybatis相關(guān)接口、xml文件、和實體類
    發(fā)表于 05-08 17:04

    詳細(xì)介紹了Java泛型、注解、并發(fā)編程

    介紹了Java泛型、注解、并發(fā)編程、數(shù)據(jù)傳輸與序列化、高效IO、容器集合、反射與加載以及JVM重點知識線程、內(nèi)存模型、JVM運(yùn)行時內(nèi)存、垃圾回收與算法、Java四種引用類型、GC
    發(fā)表于 08-20 06:09

    HarmonyOS注解的使用方法分享

    定義我們的注解自定義注解1、聲明注解功能:檢測是否有規(guī)范的get方法新建java libray的module,命名為annotation
    發(fā)表于 03-28 14:04

    面向實體識別的聚算法

    實體識別是數(shù)據(jù)質(zhì)量的一個重要方面,對于大數(shù)據(jù)處理不可或缺,已有的實體識別研究工作聚焦于數(shù)據(jù)對象相似度算法、分塊技術(shù)和監(jiān)督的實體識別技術(shù),而非監(jiān)督的實體識別
    發(fā)表于 01-09 15:52 ?0次下載

    一文詳談Spring JPA

    大家好,今天我和大家聊一下關(guān)于Spring JPA 的相關(guān)知識,我們先來了解下什么是 JPA
    的頭像 發(fā)表于 06-30 17:29 ?2295次閱讀

    Java注解及其底層原理解析 1

    依賴,使用`@Data`來修飾實體類,我們就不需要編寫`getter和setter方法,構(gòu)造函數(shù)`等等。
    的頭像 發(fā)表于 02-09 14:18 ?874次閱讀
    Java<b class='flag-5'>注解</b>及其底層原理解析 1

    Java注解及其底層原理解析2

    依賴,使用`@Data`來修飾實體類,我們就不需要編寫`getter和setter方法,構(gòu)造函數(shù)`等等。
    的頭像 發(fā)表于 02-09 14:18 ?592次閱讀
    Java<b class='flag-5'>注解</b>及其底層原理解析2

    Spring Web MVC注解

    RequestMapping注解的主要用途是將Web請求與請求處理的方法進(jìn)行映射。Spring MVC和Spring WebFlux都通過`RquestMappingHandlerMapping`和`RequestMappi
    的頭像 發(fā)表于 04-07 11:32 ?720次閱讀
    Spring Web MVC<b class='flag-5'>注解</b>

    Springboot常用注解合集

    前幾章,在系統(tǒng)啟動里面,都加入了此啟動注解,此注解是個組合注解,包括了`@SpringBootConfiguration`、`@EnableAutoConfiguration`和`@
    的頭像 發(fā)表于 04-07 14:27 ?854次閱讀
    Springboot常用<b class='flag-5'>注解</b>合集

    Brocade SANnav區(qū)域清單視圖:了解實體類

    電子發(fā)燒友網(wǎng)站提供《Brocade SANnav區(qū)域清單視圖:了解實體類型.pdf》資料免費(fèi)下載
    發(fā)表于 08-30 15:45 ?0次下載
    Brocade SANnav區(qū)域清單視圖:了解<b class='flag-5'>實體類</b>型

    JPA基礎(chǔ)概念

    相信大部分java小伙伴在日常開發(fā)過程,在存儲操作層都會選擇更容易上手的jpa,各種封裝,通過注解等方式,簡化了大量的代碼內(nèi)容,同時提升了開發(fā)效率,但是(敲黑板,永遠(yuǎn)都躲不開的但是...)相應(yīng)也將
    的頭像 發(fā)表于 10-08 14:36 ?799次閱讀
    <b class='flag-5'>JPA</b>基礎(chǔ)概念

    springboot核心注解

    幫助開發(fā)者簡化開發(fā)過程,提高開發(fā)效率。本文將深入介紹 Spring Boot 的核心注解及其使用方法。 @SpringBootApplication @SpringBootApplication
    的頭像 發(fā)表于 11-23 09:23 ?621次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品
    主站蜘蛛池模板: 本庄优花aⅴ全部在线影片 被滋润的艳妇疯狂呻吟白洁老七 | 99国产在线精品观看二区 | 国产亚洲精品久久久久久国模美 | 中文字幕高清在线中文字幕 | 日韩欧无码一区二区三区免费不卡 | 久久亚洲人成国产精品 | 亚洲 日本 天堂 国产 在线 | 涩涩涩涩爱网站 | 久久夜色噜噜噜亚洲AV0000 | 国产高潮久久精品AV无码 | 一区二区视频在线观看高清视频在线 | 在线 国产 欧美 专区 | 亚洲精品久久久午夜麻豆 | 亚洲 欧美 制服 校园 动漫 | 黄色三级三级三级免费看 | 99久久99久久久99精品齐 | 成人欧美一区二区三区白人 | 奶大B紧17p| 小妇人电影免费完整观看2021 | 性与肉体电影免费观看 | 在线观看视频中文字幕 | 最美女人体内射精一区二区 | 精品无码国产自产在线观看水浒传 | 蜜桃传媒在线观看入口 | 欧美内射深插日本少妇 | 中文字幕在线视频免费观看 | 日韩精品无码久久一区二区三 | 野花香在线观看免费观看大全动漫 | 中文字幕不卡在线高清 | 精品午夜中文字幕熟女人妻在线 | 青青精品视频国产 | 亚洲AV怡红院AV男人的天堂 | 日本久久精品免视看国产成人 | 精品一区二区免费视频蜜桃网 | 丁香美女社区 | 小草高清视频免费直播 | 久久高清一本无码 | 一二三四在线观看韩国 | 边摸边吃奶边做激情叫床视 | 亚洲精品视频在线免费 | 香蕉久久一区二区三区啪啪 |