Heath Thomann created OPENJPA-2536:
--------------------------------------

             Summary: FetchGroup is not returning lazy fields.
                 Key: OPENJPA-2536
                 URL: https://issues.apache.org/jira/browse/OPENJPA-2536
             Project: OpenJPA
          Issue Type: Bug
          Components: kernel
    Affects Versions: 2.3.0, 2.1.2, 2.2.1.1, 2.2.3, 2.4.0
            Reporter: Heath Thomann
            Priority: Minor


I have found an issue with FetchGroups not returning 'lazy' fields.  To 
describe, take this entity:

@Entity
@FetchGroup(name = "HardwareSimple", attributes = { @FetchAttribute(name = 
"status"),
    @FetchAttribute(name = "statusActive") })
public class HardwareStatus implements Serializable {

    @Id
    private String status;
    private String statusActive;
    private String condition;
    private int connection;
...............


OpenJPAEntityManager openJpaEm = OpenJPAPersistence.cast(em);
openJpaEm.getFetchPlan().resetFetchGroups().removeFetchGroup("default").addFetchGroups("HardwareSimple");

HardwareStatus h1 = em.find(HardwareStatus.class, "Lost");
//h1.status contains "Lost" in the db.
assertEquals("Lost",h1.getStatus());  //this assert passes
//h1.connection contains '2' in the db.        
assertEquals(2, h1.getConnection());  //this assert fails
//h1.condition contains "Used" in the db.
assertEquals("Used", h1.getCondition());  //this assert fails

The latter two h1.get* returns null.  These fields are 'lazy' (i.e. not part of 
the FetchGroup) but should be fetched when requested.  See the attached test 
for full details.

Thanks,

Heath






--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to