diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/Security.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/Security.java
index 6e624b1b6..23a337286 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/Security.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/Security.java
@@ -34,6 +34,9 @@ public class Security {
@JoinColumn(name="COUNTRY_ID")
private Country country;
+ @ManyToOne
+ private Country countryEager;
+
public Security() {
super();
}
@@ -56,6 +59,14 @@ public class Security {
this.country = c;
}
+ public Country getCountryEager() {
+ return countryEager;
+ }
+
+ public void setCountryEager(Country c) {
+ this.countryEager = c;
+ }
+
public Embed getSymbol() {
return symbol;
}
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/Security1.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/Security1.java
index d90740af8..d77668893 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/Security1.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/Security1.java
@@ -26,6 +26,8 @@ public class Security1 {
private Country1 country;
+ private Country1 countryEager;
+
public Security1() {
super();
}
@@ -48,6 +50,14 @@ public class Security1 {
this.country = c;
}
+ public Country1 getCountryEager() {
+ return countryEager;
+ }
+
+ public void setCountryEager(Country1 c) {
+ this.countryEager = c;
+ }
+
public Embed getSymbol() {
return symbol;
}
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/TestXMLPersistenceMetaDataParser.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/TestXMLPersistenceMetaDataParser.java
index 491536395..97ccfcc1c 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/TestXMLPersistenceMetaDataParser.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/TestXMLPersistenceMetaDataParser.java
@@ -126,6 +126,45 @@ public class TestXMLPersistenceMetaDataParser extends SQLListenerTestCase {
em.close();
}
+
+ public void testManyToOneEagerFetch() {
+ // initialize objects
+ EntityManager em = emf.createEntityManager();
+
+ long aI_sid = 148007245;
+ long aUS_sid = 2;
+
+ Security1 aI_security = new Security1(aI_sid, new Embed("XYZ"));
+ Country1 aUS_country = new Country1(aUS_sid, "USA");
+ aI_security.setCountry1(aUS_country);
+ aI_security.setCountryEager(aUS_country);
+
+ Security aI_securityAnn = new Security(aI_sid, new Embed("XYZ"));
+ Country aUS_countryAnn = new Country(aUS_sid, "USA");
+ aI_securityAnn.setCountry(aUS_countryAnn);
+ aI_securityAnn.setCountryEager(aUS_countryAnn);
+
+ em.getTransaction().begin();
+ em.persist(aI_security);
+ em.persist(aUS_country);
+ em.getTransaction().commit();
+ em.clear();
+
+ aI_security = em.find(Security1.class, aI_sid);
+ em.clear();
+ Country1 countryEager = aI_security.getCountryEager();
+ assertNotNull(countryEager);
+
+ aI_securityAnn = em.find(Security.class, aI_sid);
+ em.clear();
+ Country countryEagerAnn = aI_securityAnn.getCountryEager();
+ assertNotNull(countryEagerAnn);
+
+ // Close
+ em.close();
+
+ }
+
private void printArrayList(ArrayList aList) {
Iterator itr = aList.iterator();
diff --git a/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/orm.xml b/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/orm.xml
index 5d0150d01..bf6e0eddc 100644
--- a/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/orm.xml
+++ b/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/orm.xml
@@ -31,6 +31,8 @@
+
+
diff --git a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java
index 4d84575ae..c83784925 100644
--- a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java
+++ b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/XMLPersistenceMetaDataParser.java
@@ -1425,7 +1425,7 @@ public class XMLPersistenceMetaDataParser
protected void parseOneToOne(FieldMetaData fmd, Attributes attrs)
throws SAXException {
String val = attrs.getValue("fetch");
- if (val != null && "EAGER".equals(val)) {
+ if (val == null || "EAGER".equals(val)) {
fmd.setInDefaultFetchGroup(true);
}
val = attrs.getValue("target-entity");
@@ -1444,7 +1444,7 @@ public class XMLPersistenceMetaDataParser
protected void parseManyToOne(FieldMetaData fmd, Attributes attrs)
throws SAXException {
String val = attrs.getValue("fetch");
- if (val != null && "EAGER".equals(val)) {
+ if (val == null || "EAGER".equals(val)) {
fmd.setInDefaultFetchGroup(true);
}
val = attrs.getValue("target-entity");