powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / QueryDSL и Embeddable класс
1 сообщений из 1, страница 1 из 1
QueryDSL и Embeddable класс
    #39027753
MagistrR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Пытаюсь выполнить запрос
Код: sql
1.
SELECT i.id,i.owner_id FROM Invoice i WHERE i.id=1 AND i.Owner_id=2


где i.id и i.owner_id составной primary key

Есть два класса IDsClass и INVOICE
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
import javax.persistence.Embeddable;
import javax.persistence.Column;

@Embeddable
public class IDsClass
{
  ... public get and set ...

  @Column(name = "Id", nullable = false)
  private int ID;

  @Column(name = "Owner_Id", nullable = false)
  private int OwnerId;

  @Column( name="State")
  private int State;

}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
import javax.persistence.*;
import core.IDsClass;

@Entity
@Table(name="invo__ice")

public class INVOICE extends BusinessEntity
{
    @EmbeddedId
    private IDsClass Key;

...get и set ...
}



Querydsl такой
Код: java
1.
2.
3.
4.
query.from(qryInvoice)
     .where(qryInvoice.Key.OwnerId.eq(20)
            .and(qryInvoice.Key.ID.eq(1)))
            .setUseLiterals(true);



Сама строка запроса получается такой
Код: sql
1.
2.
3.
from iNVOICE
where iNVOICE.Key.OwnerId = 20 
and iNVOICE.Key.ID = 1



Поэтому два вопроса:
1. Почему аннотация @Table(name="invo__ice") не меняет имя таблицы в запросе?
2. И почему в строке запроса фигурирует iNVOICE.Key.ID и iNVOICE.Key.OwnerId, а не iNVOICE.ID и iNVOICE.OwnerId?

Спасибо.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / QueryDSL и Embeddable класс
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]