OpenJPA ManytoOne并不急于加载。在Websphere社区中工作得很好,但在JBoss中没有

时间:2015-12-01 15:07:24

标签: jpa jboss migration websphere openjpa

两台服务器上的OpenJPA版本2.1.1相同。相同的代码persistence.xml。相同的Mysql数据库。相同的Java注释,但是对于ManytoOne注释不会急切地加载到Jboss服务器上,而它在Websphere社区版上运行良好。

有一个“return query.getResultList()”语句,其中List作为方法的返回类型。

EntityA在ManytoOne之下。添加了Eager的fetchtype,但默认情况下是对此ManytoOne的渴望。还试图查看是否需要添加LoadFetchGroup。仍然没有奏效。

还尝试了@PrimaryKeyJoinColumn而不是@JoinColumn。没工作。 .deb

基本上,没有生成加载多个关联的查询。

@PrimaryKeyJoinColumn(name = "report_status_id", referencedColumnName = "report_status_id")

我能够让它工作的唯一方法是循环返回List以及访问/打印任何EntityB / C值内容的每个项目。这意味着那些多个实体正在加载懒惰。这是一个迁移项目,因此不希望更改太多的客户端代码。

Haven甚至在persistence.xml中尝试过,但没有帮助。

 @ManyToOne(optional = false,fetch=FetchType.EAGER)
   // @LoadFetchGroup("detail")
    @JoinColumn(name = "report_type_id", referencedColumnName = "report_type_id")
    private ReportType reportType;

    @ManyToOne(optional = false,fetch=FetchType.EAGER)
    //@ManyToOne(optional = false)
    @JoinColumn(name = "report_status_id", referencedColumnName = "report_status_id")
    private ReportStatus reportStatus;
-----------
Entity on the other side ReportType has this. Tried with both List return type and Set return type. 
  // @OneToMany(mappedBy = "reportType",fetch=FetchType.EAGER)
    @OneToMany(mappedBy = "reportType")
private Set<ReportFile> reportFileCollection;

请记住,代码在Websphere Community Edition服务器上没有任何问题,但只在Jboss中不起作用。

0 个答案:

没有答案