两台服务器上的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中不起作用。