我的使用Avaje Ebean的ORM映射存在问题,其中只有很多关系加载而不是一个。
我有以下结构,一个抽象类通知使用单表继承,实现类之一是 ReportNotification 。 它是一个包含许多通知的Report类。 当我运行代码时,我的报告会返回所有通知,但我的通知从不加载报告。数据库看起来正确,表中的值是正确的,所以我不确定我做错了什么。 我尝试了很多变化而没有成功。
在Notification表的数据库中,出于某种原因,外键引用ID被命名为 report_report_id ,但它是由Ebean以这种方式生成的。
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "notification_type", discriminatorType = DiscriminatorType.STRING)
public abstract class Notification extends Model {
@Id
@Column(unique = true)
public Long id;
然后我有两个实现类,但为了清楚起见,我只列出一个。
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorValue("REPORT")
public class ReportNotification extends Notification {
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="report_report_id", referencedColumnName = "report_report_id")
public Report report;
我有它加入的报告类
@Entity
public class Report extends Model {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "report_id")
public Long reportId;
@OneToMany(mappedBy = "report", targetEntity = ReportNotification.class)
public Set<ReportNotification> notifications;
}