views:

221

answers:

1

I want to build the following pseudo query

Select a From APDU a where a.group.id= :id

group is a field in APDU class of the type APDUGroup.class.

I just want to get a list of APDUs based on APDUGroup's id.

How do i do that using a standard JPA query?

UPDATE

Yes, I have tried the above query and tried other variations for hours before posting in S/O. Here is the generated SQL for the query above:

SELECT t1.ID, t1.status, t1.type, t1.modified, t1.response, t1.expectedSize, t1.created, t1.description, t1.sequence, t1.name, t1.command, t1.recurring, t1.auth, t1.createdBy, t1.APDUGroup, t1.modifiedBy FROM APDUGroup t0, APDU t1 WHERE ((t0.ID = ?) AND (t0.ID = t1.APDUGroup))

The query looks okay but nothing get selected from my table. There are at least 100 APDUs with APDUGroup = 1 in my test database.

I'm using eclipselink as the JPA provider.

A: 

Given the following Entities:

@Entity
public class APDU implements Serializable {
    @Id
    @GeneratedValue
    private Long id;

    @ManyToOne
    private APDUGroup group;

    //...

}

@Entity
public class APDUGroup implements Serializable {
    @Id
    @GeneratedValue
    private Long id;

    //...
}

The following query will return a list of APDUs for a given APDUGroup id:

select a from APDU a where a.group.id = :id

Oh, wait, that's your query :)

Pascal Thivent
OMG!you are right! that is my query :), I tried that before posting here, I didn't get any results at all. Thought maybe there are other ways to do it.
Random Joe
I have found the source of my misery. There is nothing wrong with the query, some codes in the service layer set the associated APDU Groups to null to prevent circular graph relationship when the objects are serialized to XML. Thanks for your help :)
Random Joe
@Random Glad you found the (real) problem :)
Pascal Thivent