簡體   English   中英

一對一休眠映射

[英]one to one hibernate mapping

我在冬眠3中使用注釋完成了一對一的映射,我拖了兩個表'group'和'category'。 類別是預定義的。 當用戶選擇類別和組時,CategoryId和goupid僅應插入組表中。

那么應該如何映射。

我的bean類如下:

分類:

@Entity
@Table(name = "biz_categories")
public class Categories implements Serializable {

private static final long serialVersionUID = -8422954389102945506L;

@Id
@Column(name = "CategoryId")
private Integer categoryId;

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

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

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

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

@Column(name = "CreatedDate")
private Date createdDate;

@Column(name = "UpadtedDate")
private Date upadatedDate;

@Column(name = "ActiveFlag")
private int activeFlag;


public void setCategoryName(String categoryName) {
    this.categoryName = categoryName;
}

public String getCategoryName() {
    return categoryName;
}

public void setCategoryDescription(String categoryDescription) {
    this.categoryDescription = categoryDescription;
}

public String getCategoryDescription() {
    return categoryDescription;
}

public void setCreatedBy(String createdBy) {
    this.createdBy = createdBy;
}

public String getCreatedBy() {
    return createdBy;
}

public void setUpdatedBy(String updatedBy) {
    this.updatedBy = updatedBy;
}

public String getUpdatedBy() {
    return updatedBy;
}

public void setUpadatedDate(Date upadatedDate) {
    this.upadatedDate = upadatedDate;
}

public Date getUpadatedDate() {
    return upadatedDate;
}

public void setActiveFlag(int activeFlag) {
    this.activeFlag = activeFlag;
}

public int getActiveFlag() {
    return activeFlag;
}

public void setCreatedDate(Date createdDate) {
    this.createdDate = createdDate;
}

public Date getCreatedDate() {
    return createdDate;
}

public void setCategoryId(Integer categoryId) {
    this.categoryId = categoryId;
}

public Integer getCategoryId() {
    return categoryId;
}
}

組:

@Entity
@Table(name = "biz_facilitygroups")
public class Groups implements Serializable {

private static final long serialVersionUID = 1L;
@Id
@Column(name = "GroupId")
@GeneratedValue
private Integer groupId;

@Column(name = "CategoryId")
private int categoryId;

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

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

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

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

@Column(name = "CreatedDate")
private Date createdDate;

@Column(name = "UpadtedDate")
private Date upadatedDate;

@Column(name = "ActiveFlag")
private int activeFlag;

@OneToOne(targetEntity=Categories.class,cascade=CascadeType.ALL)
@JoinColumn(name="CategoryId")
private Categories categories;

public Integer getGroupId() {
    return groupId;
}

public void setGroupId(Integer groupId) {
    this.groupId = groupId;
}

public String getGroupName() {
    return groupName;
}

public void setGroupName(String groupName) {
    this.groupName = groupName;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

public String getCreatedBy() {
    return createdBy;
}

public void setCreatedBy(String createdBy) {
    this.createdBy = createdBy;
}

public String getUpdatedBy() {
    return updatedBy;
}

public void setUpdatedBy(String updatedBy) {
    this.updatedBy = updatedBy;
}

public Date getCreatedDate() {
    return createdDate;
}

public void setCreatedDate(Date createdDate) {
    this.createdDate = createdDate;
}

public Date getUpadatedDate() {
    return upadatedDate;
}

public void setUpadatedDate(Date upadatedDate) {
    this.upadatedDate = upadatedDate;
}

public int getActiveFlag() {
    return activeFlag;
}

public void setActiveFlag(int activeFlag) {
    this.activeFlag = activeFlag;
}

public static long getSerialversionuid() {
    return serialVersionUID;
}

public void setCategoryId(int categoryId) {
    this.categoryId = categoryId;
}

public int getCategoryId() {
    return categoryId;
}

public void setCategories(Categories categories) {
    this.categories = categories;
}

public Categories getCategories() {
    return categories;
}
}

僅需要另一個屬性與類的關系。

首先,必須在數據庫中滿足關系。 應該添加一個外鍵 我認為關系的方向是從Group到Category 將外鍵添加到Group表。 外鍵和CategoryId之間必須滿足關系。

為與Group實體的關系添加屬性。

@OneToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE })
@JoinColumn(name = "foreing_key_of_category")
private Category category;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM