我正在使用 JPA 和 Hibernate 实现 Spring Boot 服务器,其中有 2 个实体:Channel
和 Translation
。
Channel
实体有两个字段(nameTranslations
和 descriptionTranslations
,它们应该以法语和英语两种语言保存频道的名称和描述),它们的类型为 {{1}描述如下:
类Translation
Channel
和
类@Entity
@Table(name = "CHANNEL")
public class Channel {
@Id
@Column(name = "ID")
private String id;
@OneToOne(mappedBy = "channel", cascade = CascadeType.ALL)
private Translation nameTranslations;
@OneToOne(mappedBy = "channel", cascade = CascadeType.ALL)
private Translation descriptionTranslations;
}
Translation
我的问题是:如何实现前面描述的逻辑,以便在 @Entity()
@Table(name = "TRANSLATION")
public class Translation {
@Id
@Column(name = "ID")
private String id;
@Column(length = 1024)
private String en;
@Column(length = 1024)
private String fr;
}
类中有 2 个 Translation
字段?到目前为止,我已经尝试使用 Channel
注释,但它不起作用。
答案 0 :(得分:0)
我不确定您要实现什么样的映射,但这会起作用:
select
j.job_id as "Job No",
c.business_name as "Customer",
to_char(j.date_created, 'DD/MM/YYYY') as "Created Date",
to_char(min(sc.start_time), 'DD/MM/YYYY') as "Schedule Start",
to_char(max(sc.end_time), 'DD/MM/YYYY') as "Schedule End",
to_char(j.date_due, 'DD/MM/YYYY') as "Due Date"
from sampleco_jobs j
join sampleco_customers c
on j.customer_id = c.customer_id
join sampleco_schedules sc
on j.job_id = sc.job_id
where c.customer_id = 29726
group by j.job_id, c.business_name;
或者,如果您想要其他实体表上的列:
@Entity
@Table(name = "CHANNEL")
public class Channel {
@Id
@Column(name = "ID")
private String id;
@OneToOne(cascade = CascadeType.ALL)
private Translation nameTranslations;
@OneToOne(cascade = CascadeType.ALL)
private Translation descriptionTranslations;
}