Hi Fay,
Here are the classes:
public class TblAmdctl extends BaseEntity {
// Mapped Fields
@TableGenerator(name="tblAmdctlGenerator",schema="EBSTATUS",table="TBL_KEYGEN",pkColumnName="PRIMARY_KEY_COLUMN"
,valueColumnName="LAST_USED_ID",pkColumnValue="TBL_AMDCTL_ID",allocationSize=1)
@Id
@GeneratedValue(strategy=GenerationType.TABLE,generator="tblAmdctlGenerator")
@Column(name = "AMDCTL_ID",nullable=false)
private Integer amdctlId;
@Version
@Column(name = "VRS_NBR")
private Integer vrsNbr;
@Basic
@Column(name = "AMDSEQ_CDE",nullable=true)
private String amdseqCde;
@Basic
@Column(name = "DPLORD_NBR",nullable=true)
private Integer dplordNbr;
@Basic
@Column(name = "FND_CDE",nullable=true)
private String fndCde;
@Basic
@Column(name = "RSL_DTE",nullable=true)
@Temporal (TemporalType.DATE)
private Date rslDte;
// Mapped Relationships
@OneToMany(mappedBy="tblAmdctl",fetch = FetchType.EAGER,cascade = {
CascadeType.PERSIST,CascadeType.MERGE})
private Collection<TblAmddes> tblAmddess = new ArrayList<TblAmddes>();
@ManyToOne(fetch = FetchType.LAZY,cascade = {
CascadeType.PERSIST,CascadeType.MERGE })
@JoinColumns([EMAIL PROTECTED](name =
"FND_CDE",referencedColumnName="FND_CDE")})
@ForeignKey
private TblFndmst tblFndmst;
public Integer getAmdctlId() {
return getInteger(amdctlId);
}
public void setAmdctlId(Integer amdctlId) {
this.amdctlId = amdctlId;
}
public Integer getVrsNbr() {
return getInteger(vrsNbr);
}
public void setVrsNbr(Integer vrsNbr) {
this.vrsNbr = vrsNbr;
}
public String getAmdseqCde() {
return getString(amdseqCde);
}
public void setAmdseqCde(String amdseqCde) {
this.amdseqCde = amdseqCde;
}
public Integer getDplordNbr() {
return getInteger(dplordNbr);
}
public void setDplordNbr(Integer dplordNbr) {
this.dplordNbr = dplordNbr;
}
public String getFndCde() {
return fndCde;
}
public void setFndCde(String fndCde) {
this.fndCde = fndCde;
}
public Date getRslDte() {
return getDate(rslDte);
}
public void setRslDte(Date rslDte) {
this.rslDte = rslDte;
}
public Collection<TblAmddes> getTblAmddess() {
if (tblAmddess == null) {
tblAmddess = new ArrayList<TblAmddes>();
}
return tblAmddess;
}
public void setTblAmddess(Collection<TblAmddes> tblAmddess) {
this.tblAmddess = tblAmddess;
}
public void addTblAmddes(TblAmddes tblAmddes) {
tblAmddes.setTblAmdctl(this);
getTblAmddess().add(tblAmddes);
}
public void removeTblAmddes(TblAmddes tblAmddes) {
tblAmddes.setTblAmdctl(null);
getTblAmddess().remove(tblAmddes);
}
public void addAllTblAmddess(Collection<TblAmddes> tblAmddess){
for (TblAmddes tblAmddes : tblAmddess) {
if (!getTblAmddess().contains(tblAmddes)){
addTblAmddes(tblAmddes);
}
}
}
public TblFndmst getTblFndmst() {
return tblFndmst;
}
public void setTblFndmst(TblFndmst tblFndmst) {
this.tblFndmst = tblFndmst;
if(tblFndmst!=null&&tblFndmst.getFndCde()!=null){
setFndCde(tblFndmst.getFndCde());
}
}
protected void synchParentRelationships(){
getAmdctlId();
if (needsToSynch(getTblFndmst())) {
setTblFndmst(getTblFndmst());
}
}
protected void synchChildRelationships(){
syncCollection(getTblAmddess());
}
protected boolean isPKGenerated(){
return true;
}
}
public class TblAmddes extends BaseEntity {
// Mapped Fields
@TableGenerator(name="tblAmddesGenerator",schema="EBSTATUS",table="TBL_KEYGEN",pkColumnName="PRIMARY_KEY_COLUMN"
,valueColumnName="LAST_USED_ID",pkColumnValue="TBL_AMDDES_ID",allocationSize=1)
@Id
@GeneratedValue(strategy=GenerationType.TABLE,generator="tblAmddesGenerator")
@Column(name = "AMDDES_ID",nullable=false)
private Integer amddesId;
@Version
@Column(name = "VRS_NBR")
private Integer vrsNbr;
@Basic
@Column(name = "AMDCTL_ID",nullable=true)
private Integer amdctlId;
@Basic
@Column(name = "AMD_DES",nullable=true)
private String amdDes;
@Basic
@Column(name = "EFC_DTE",nullable=true)
@Temporal (TemporalType.DATE)
private Date efcDte;
// Mapped Relationships
@ManyToOne(fetch = FetchType.LAZY,cascade = {
CascadeType.PERSIST,CascadeType.MERGE })
@JoinColumns([EMAIL PROTECTED](name =
"AMDCTL_ID",referencedColumnName="AMDCTL_ID")})
@ForeignKey
private TblAmdctl tblAmdctl;
public Integer getAmddesId() {
return getInteger(amddesId);
}
public void setAmddesId(Integer amddesId) {
this.amddesId = amddesId;
}
public Integer getVrsNbr() {
return getInteger(vrsNbr);
}
public void setVrsNbr(Integer vrsNbr) {
this.vrsNbr = vrsNbr;
}
public Integer getAmdctlId() {
return getInteger(amdctlId);
}
public void setAmdctlId(Integer amdctlId) {
this.amdctlId = amdctlId;
}
public String getAmdDes() {
return getString(amdDes);
}
public void setAmdDes(String amdDes) {
this.amdDes = amdDes;
}
public Date getEfcDte() {
return getDate(efcDte);
}
public void setEfcDte(Date efcDte) {
this.efcDte = efcDte;
}
public TblAmdctl getTblAmdctl() {
return tblAmdctl;
}
public void setTblAmdctl(TblAmdctl tblAmdctl) {
this.tblAmdctl = tblAmdctl;
if(tblAmdctl!=null&&tblAmdctl.getAmdctlId()!=null){
setAmdctlId(tblAmdctl.getAmdctlId());
}
}
protected void synchParentRelationships(){
getAmddesId();
if (needsToSynch(getTblAmdctl())) {
setTblAmdctl(getTblAmdctl());
}
}
protected void synchChildRelationships(){
}
protected boolean isPKGenerated(){
return true;
}
}
Fay Wang wrote:
>
> Enrico,
>
> I have two findBy operations in my test case using the same em, and it
> works fine. According to your sql, you have FND_CDE in the where clause
> (see below):
>
> SELECT t0.AMDCTL_ID, t0.VRS_NBR, t0.AMDSEQ_CDE, t0.DPLORD_NBR, t0.FND_CDE,
> t0.RSL_DTE FROM EBSTATUS.TBL_AMDCTL t0 WHERE t0.FND_CDE = ?
> [params=(String) 0001001]
>
> SELECT t0.AMDCTL_ID, t1.AMDDES_ID, t1.VRS_NBR, t1.AMD_DES, t1.AMDCTL_ID,
> t1.EFC_DTE FROM EBSTATUS.TBL_AMDCTL t0 INNER JOIN EBSTATUS.TBL_AMDDES t1
> ON t0.AMDCTL_ID = t1.AMDCTL_ID WHERE t0.FND_CDE = ? ORDER BY t0.AMDCTL_ID
> ASC [params=(String) 0000001]
>
> Is FND_CDE the primary key? Do you call:
> TblAmdctl ctl2 = em.find(TblAmdctl.class, 1);
>
> It would be greatly appreciated if you could provide more information on
> the TblAmdctl.java and TblAmddes.java for us to debug the cache problem.
> Thanks!
>
> -Fay
>
--
View this message in context:
http://n2.nabble.com/OpenJPA-1.2.0-Bug-on-FetchType.EAGER-tp1100274p1108904.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.