EBean / Hibernate OneToMany只加载一种方式

时间:2014-10-09 17:55:31

标签: hibernate orm playframework ebean

我的使用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;
}

0 个答案:

没有答案