Hibernate的註解

來源:互聯網
上載者:User

標籤:

資料庫mysql:user50表和order50表是一對多的關係

order50表有   外鍵: user_id  

user類:

package com.c50.entity;import java.util.Date;import java.util.HashSet;import java.util.Set;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.FetchType;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.OneToMany;import javax.persistence.Table;import javax.persistence.Temporal;import javax.persistence.TemporalType;import org.hibernate.annotations.Cache;import org.hibernate.annotations.CacheConcurrencyStrategy;import org.hibernate.annotations.Cascade;import org.hibernate.annotations.CascadeType;import org.hibernate.annotations.GenericGenerator;//代表此類參與ORM映射,此註解必須要有@Entity  //代表user這個類映射了一個表user50,如果表名和類名一樣,此註解可以省略@Table(name="user50")//讀寫緩衝許可權@Cache(usage=CacheConcurrencyStrategy.READ_WRITE)public class User {    //主鍵,此註解必須要有    @Id      //資料庫表中主鍵列名為id,如果實體類屬性名稱和列名相同,此註解可以省略    @Column(name="id")      //主鍵的維護策略    @GenericGenerator(name="inc50",strategy="increment")       @GeneratedValue(generator="inc50")    private Integer userID;    private String name;    private Integer age;    @Column(name="birth")    //此屬性是日期類型,time:只儲存時間       date:只儲存日期         timestamp:(預設)日期+時間    @Temporal(TemporalType.DATE)    private Date birthday;    //關係屬性    //mappedBy="對方中映射著外鍵的關係屬性"=="order類中關係屬性為user"    //消極式載入:fetch = FetchType.LAZY    @OneToMany(mappedBy="user",fetch=FetchType.LAZY)    //ALL:增刪改都可以級聯(cascade)    //save-update:增加和更新可以級聯    //delete:刪除可以級聯    //如果不設定,則增刪改都不可以級聯    //注意:查詢例外,不受級聯許可權的控制,預設級聯。    @Cascade(value=CascadeType.DELETE)    private Set<Order> orders=new HashSet<Order>();        public Set<Order> getOrders() {        return orders;    }    public void setOrders(Set<Order> orders) {        this.orders = orders;    }    public User(){}        public User(Integer userID, String name, Integer age, Date birthday) {        super();        this.userID = userID;        this.name = name;        this.age = age;        this.birthday = birthday;    }    public Integer getUserID() {        return userID;    }    public void setUserID(Integer userID) {        this.userID = userID;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    }    public Date getBirthday() {        return birthday;    }    public void setBirthday(Date birthday) {        this.birthday = birthday;    }    @Override    public String toString() {        return "User [userID=" + userID + ", name=" + name + ", age=" + age                + ", birthday=" + birthday + "]";    }    }

 order類:

package com.c50.entity;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.ManyToOne;import javax.persistence.Table;import org.hibernate.annotations.GenericGenerator;@Entity@Table(name="order50")public class Order {    @Id    @GenericGenerator(name="inc50",strategy="increment")    @GeneratedValue(generator="inc50")    private Integer id;    private Double price;    private String note;    //關係屬性    @ManyToOne    //資料庫中order表,外鍵名為user_id,指向user表    @JoinColumn(name="user_id")    private User user;        public User getUser() {        return user;    }    public void setUser(User user) {        this.user = user;    }    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public Double getPrice() {        return price;    }    public void setPrice(Double price) {        this.price = price;    }    public String getNote() {        return note;    }    public void setNote(String note) {        this.note = note;    }    @Override    public String toString() {        return "Order [id=" + id + ", price=" + price + ", note=" + note + "]";    }    public Order(){}    public Order(Integer id, Double price, String note) {        super();        this.id = id;        this.price = price;        this.note = note;    }    }

 

Hibernate的註解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.