2013-08-14 5 views
1

Я сделал один к одному сопоставление в спящем режиме 3 с аннотацией, У меня есть группы буксиров «группа» и «категория». категории предопределены. , когда пользователь выбирает категорию и группу, CategoryId и goupid должны вставляться только в таблицу групп.сопоставление одного с одним спящим

Итак, как следует сопоставлять.

мои боб классы следующие:

Категории:

@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; 
} 
} 

ответ

1

Просто еще одно свойство в классе отношения необходимо.

Прежде всего, отношение должно быть выполнено в базе данных. Необходимо добавить foreign key. Я предполагаю, что направление отношения от группы до Category. Добавьте внешний ключ в таблицу Group. Отношение должно быть выполнено между внешним ключом и CategoryId.

Добавить объект для связи с Group объект.

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

благодарит друга за его работу ....... –