JPA Query - JOIN - PullRequest
       11

JPA Query - JOIN

0 голосов
/ 06 января 2012

у меня две таблицы Таблица A Таблица B

Таблица A содержит

Колонка X Колонка Y Колонка Z Колонна Ш

Таблицы B Содержит

Колонка P Колонка Q Колонна R Колонна Ш

Столбец W является общим в обеих таблицах.

и их сущности

Первая сущность

@Entity
@Table(name = "A")
@Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class TableA extends AbstractBaseEntity {

    @Id
    @NotNull
    @Column(name = "X")
    private Long sampleId1;

    @Id
    @NotNull
    @Column(name = "Y")
    private Long sampleId2;

    @Id
    @NotNull
    @Column(name = "Z")
    private Date sampleDate3;

    @ManyToOne(targetEntity = TableB.class)
    @JoinColumn(name = "W")
    private TableB tableB;

    ...
    getter
    setter
    ....
}

Второй субъект

@Entity
@Table(name = "TableB")
@Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class TableB extends AbstractBaseEntity {

    @Id
    @NotNull
    @Column(name = "W")
    private Long sampleId4; 

    @Id
    @NotNull
    @Column(name = "P")
    private Long sampleId1;

    @Id
    @NotNull
    @Column(name = "Q")
    private Long sampleId2;

    @Id
    @NotNull
    @Column(name = "R")
    private Long sampleId3;

    ...
    getter
    setter
    ....
}

У меня есть Интерфейс, где написаны все запросы

    Public interface sqlquery{

          String query1 = "from TableA ORDER BY" +
                sampleDate3 asc;";

          String query2= "from TableB";

}

Сейчас я выбираю все данные отдельно в этом запросе, Мне нужна помощь в написании нового отдельного запроса, в котором данные должны отображаться на основе того же идентификатора, т.е. SampleId4 (столбец W) используя предложение JOIN и где. и сохраните данные в списке результатов.

1 Ответ

1 голос
/ 06 января 2012

Ваше отображение не имеет особого смысла. Если все столбцы в таблице B являются частью идентификатора, это, вероятно, означает, что в нем может быть несколько строк, имеющих одинаковое значение в столбце W. Поэтому, если строка в таблице A имеет это общее значение, она фактически ссылается на все эти строки таблицы B. Таким образом, у вас нет связи ManyToOne между TableA и TableB.

Что касается вашего запроса, поскольку сопоставление, во-первых, неверно, я не понимаю, как я мог бы его написать. Конец, даже если он был в порядке, вы должны сообщить нам, что должен вернуть запрос, потому что он далеко не ясен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...