> Is this a bug in OpenJPA, or is a proxy object supposed to be in the Address
> entity's place?
I would expect the address data to be available.
What SQL is produced by the find call?
-Patrick
On 8/13/07, Joe Grassel <[EMAIL PROTECTED]> wrote:
> Hello, I'm writing a program that is trying to capitalize on FetchGroups, but
> I'm hitting some behavior that I was not expecting, based on what I read from
> the manual.
>
> I have two entities, Employee and Address, as follows:
>
> @Entity
> @FetchGroups({
> @FetchGroup(name="DescFetchGroup", attributes= [EMAIL
> PROTECTED](name="description")} ),
> @FetchGroup(name="AddressFetchGroup", attributes= [EMAIL
> PROTECTED](name="address")} )
> //...
> })
> public class Employee {
> @Id
> private int id;
>
> //...
>
> @Basic(fetch=FetchType.LAZY)
> private String description;
>
> @OneToOne(fetch=FetchType.LAZY)
> private Address address;
>
> //...
>
> }
>
> and
>
> @Entity
> public class Address {
> @Id
> private int id;
>
> private String street;
> private String city;
> private String state;
> private int zip;
>
> //...
>
> public String toString()
> {
> StringBuffer sb = new StringBuffer();
> sb.append("Address(id=").append(this.id).append(")");
> sb.append(": street=").append(getStreet());
> sb.append(": city=").append(getCity());
> sb.append(": state=").append(getState());
> sb.append(": zip=").append(getZip());
>
> return new String(sb);
> }
> }
>
> This is what I'm trying to do:
>
> // ...
> OpenJPAEntityManager oem = (OpenJPAEntityManager) em;
> oem.getFetchPlan().addFetchGroups("DescFetchGroup");
> oem.getFetchPlan().addFetchGroups("AddressFetchGroup");
>
> oem.clear();
> Employee emp = oem.find(Employee.class, 1);
> oem.clear();
>
> if (emp.getDescription() != null)
> System.out.println("Employee description=" + emp.getDescription());
> else
> System.out.println("Description is null");
>
> if (emp.getAddress() != null)
> System.out.println("Employee address=" + emp.getAddress());
> else
> System.out.println("Address is null");
>
> // ...
>
> I get the following results:
>
> Employee description=Description 1
> Employee address=Address(id=1): street=null: city=null: state=null: zip=0
>
> It looks like an empty proxy object containing just the Address entity's
> primary key is returned. I was under the impression that with the
> AddressFetchGroup added to the fetch plan, that the whole (Address) entity's
> persistent state would be eagerly loaded.
>
> Is this a bug in OpenJPA, or is a proxy object supposed to be in the Address
> entity's place?
>
--
Patrick Linskey
202 669 5907