【发布时间】:2014-10-02 11:20:51
【问题描述】:
我想存储emailIds,当表格发生更改时需要通知它。
我只有一张包含 ownerid 和 emailid 列的表格。我想将emailid 存储在单独的行中,而不是逗号分隔的列表中。我不需要所有者表,因为我没有所有者的任何其他信息。我只想保存电子邮件 ID,但要保存到单独的行中。
我如何在休眠中做到这一点。
我尝试使用类似的东西
@Table(name = "OwnerEmailIds")
@Entity
public class OwnerEmailIds implements Serializable {
private static final long serialVersionUID = 5906661729869048121L;
@Column(name = "OwnerID", nullable = false)
private String ownerId;
@ElementCollection(fetch=FetchType.EAGER) // must use eager as we close the session before returning
@CollectionTable(name="OwnerEmailIds", joinColumns=@JoinColumn(name="vendorId"))
@Column(name = "emailId")
private Set<String> EmailIds = new HashSet<String>();
但这里的问题是我的集合表与实体表相同。
由于我的 emailIds 列不为空,当我尝试保存对象时,它失败并出现 sql 错误,说明 emailid 列不能为空。
【问题讨论】:
-
您打算如何使用此表中的数据?您将如何使用休眠进行查询?
-
我从不同的网络服务获取 ownerID,我只需要从数据库中获取 emailids。
标签: java sql hibernate annotations