JPA запрос много к одной ассоциации - PullRequest
1 голос
/ 11 апреля 2010

Я хочу построить следующий псевдопросмотр

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

группа - это поле в классе APDU типа APDUGroup.class.

Я просто хочу получить список APDU на основе идентификатора APDUGroup.

Как мне это сделать, используя стандартный запрос JPA?

UPDATE

Да, я пробовал вышеупомянутый запрос и пробовал другие варианты в течение нескольких часов перед публикацией в S / O. Вот сгенерированный SQL для запроса выше:

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))

Запрос выглядит нормально, но в моей таблице ничего не выбрано. В моей тестовой базе данных есть как минимум 100 APDU с APDUGroup = 1.

Я использую eclipselink в качестве поставщика JPA.

1 Ответ

4 голосов
/ 12 апреля 2010

Даны следующие сущности:

@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;

    //...
}

Следующий запрос вернет список APDU для данного идентификатора APDUGroup:

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

Ой, подождите, это ваш запрос:)

...