日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

01-hibernate注解:类级别注解,@Entity,@Table,@Embeddable

發布時間:2023/11/30 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 01-hibernate注解:类级别注解,@Entity,@Table,@Embeddable 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

@Entity

@Entity:映射實體類

@Entity(name="tableName")

  name:可選,對應數據庫中一個表,若表名與實體類名相同,則可以省略。

注意:使用@Entity時候必須指定實體類的主鍵屬性。

第一步:建立實體類:

分別給類名上面加上@Entity注解。給類中作為主鍵的屬性的get方法前面加上@Id注解。

package Com.Entity; import java.util.Date; import javax.persistence.Entity;/*JPA主鍵*/ import javax.persistence.Id; /*學生實體類*/@Entity(name="Students") public class Students {private int sid;private String sname;//姓名private String gender;//性別private Date birthday;private String major;//專業private String address;//地址public Students(){}public Students(int sid, String sname, String gender, Date birthday, String major, String address) {//super();this.sid = sid;this.sname = sname;this.gender = gender;this.birthday = birthday;this.major = major;this.address = address;} @Idpublic int getSid() {return sid;}public void setSid(int sid) {this.sid = sid;}public String getSname() {return sname;}public void setSname(String sname) {this.sname = sname;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public String getMajor() {return major;}public void setMajor(String major) {this.major = major;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}}

第二步:在配置中配置好這個類。

第三步:寫測試類:

package Com.Entity; import java.util.EnumSet; import org.hibernate.boot.Metadata; import org.hibernate.boot.MetadataSources; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.service.ServiceRegistry; import org.hibernate.tool.hbm2ddl.SchemaExport; import org.hibernate.tool.schema.TargetType; import org.junit.Test;public class TestStudents { @Testpublic void testSchemaExport(){//創建服務注冊對象ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();//創建Metadata對象Metadata metadata =new MetadataSources(serviceRegistry).buildMetadata();//創建SchemaExport對象SchemaExport export = new SchemaExport(); export.create(EnumSet.of(TargetType.DATABASE),metadata);} }

調試后,數據庫中正常生成表。

?

@Table

@Table(name="",catalog="",schema="")

@Entity配合使用,只能標注在實體類的class定義處,表示實體對應的數據庫表的信息。

name:可選,映射表名稱,默認表名和實體名稱一致,只有在不一致的情況下需要指定表名。

catalog(目錄):可選,表示catalog名稱,默認為:catalog("")。

schema(模式):可選,表示schema名稱,默認為:schema("")。

?

Table注解實例:對于之前的Entity修改如下:

name:表名前面,schema:默認為使用的數據庫名

?

?@Embeddable

表示一個非Entity類可以嵌入到另一個Entity類中作為屬性而存在。

相當于代替之前單筆操作的的組件屬性

?

第一步:在建一個非entity類,并且在前加上@Embeddable注解。

package Com.Entity;import javax.persistence.Embeddable;@Embeddable /*表示一個嵌入類,在另一個實體類中充當屬性*/ public class Address {private String postCode;//郵編private String address;//地址private String phone;public Address(){}public String getPostCode() {return postCode;}public void setPostCode(String postCode) {this.postCode = postCode;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}}

第二步:在entity實體類中加入這個類的對象,并且加上set,get方法。

?

第三步:測試:

發現按照要求生成成功。

?

轉載于:https://www.cnblogs.com/alsf/p/7822241.html

總結

以上是生活随笔為你收集整理的01-hibernate注解:类级别注解,@Entity,@Table,@Embeddable的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。