【发布时间】:2012-06-03 13:07:12
【问题描述】:
我有一个严重的问题。我有一张桌子
门票信息
TICKETINFOID pk,REMARK varchar(128),TICKETDATE 时间戳
它有一个对应的带有休眠注释的类,看起来像这样
@Entity
@Table(name = "TICKETINFO")
public class Ticketinfo implements Serializable {
@Id
@Column(name = "TICKETINFOID")
private Long id;
@Column(name = "TICKETDATE")
private String date;
@column(name = "REMARK")
private string remark;
//getters and setters
}
现在我的工作是我需要创建一个 TICKETINFO 表的子表
TICKETINFO_REMARK
TICKETINFO_REMARK_ID pk,TICKETINFOID fk,REMARK varchar(128)
并且 TICKETINFOID 将是来自 TICKETINFO 表的外键,并且必须填充 TICKETINFO_REMARK 的 REMARK 字段以及对应 TICKETINFOID 的 TICKETINFO 的 REMARK 字段。
对于 1 个 TICKETINFOID,将有一个 REMARK,它可以为空。 Ticketinfo.java中REMARK的数据类型必须保持为字符串。我可以添加额外的逻辑但不能改变现有的流程。
请帮助我,因为我陷入了可怕的混乱......
【问题讨论】:
-
所以没有TICKETINFO.REMARK这样的列?你不能在 Ticketinfo 类上将它映射为
@Column。通常,您会有一个单独的实体类 TicketinfoRemark,它将通过@OneToOne注释链接到 Ticketinfo。您可能可以在 Ticketinfo 中添加一个访问器:String getRemark() { if (ticketinfoRemark != null) return ticketinfoRemark.remark; },但这是一个 hack。 -
Create and populate child table from Parent table using Hibernate Annotation 的可能重复项如何阅读您第一次发布此问题时得到的答案?
标签: java hibernate annotations