Я новичок в запросах JPQL, и я не понимаю, как я могу перевести запрос SQL в JPQL запроса:JPQL запросов для Java EE Project
У меня есть 2 таблицы:
- клиентов (idCustomer, ..., idMacroMarket)
- MacroMarket (idMacroMarket, nameMacroMarket ...)
Эти таблицы связаны с отношением @ManytoOne (для клиентов) и @OneToMany (для MacroMarket).
SQL запросов:
SELECT nameMacroSegment FROM Macro_market m
INNER JOIN Customer c ON c.idMacroMarket = m.idMacroMarket
WHERE idCustomer = id;
JPQL запрос:
SELECT nameMacroSegment FROM Macro_market m
...
...
WHERE idCustomer = :id
Сущности
@Entity
@Table(name="macro_market")
public class Macro_market implements Serializable {
private static final long serialVersionUID = 1L;
/** ATTRIBUTES **/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long idMacroMarket;
private String nameMacroSegment;
private String nameMarketSegment;
@OneToMany(mappedBy="macMar")
private List<Customer> customers;
...
...
@Entity
@Table(name="customer")
public class Customer implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long idCustomer;
...
...
/** RELATIONS **/
// CUSTOMER - MACRO_MARKET
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="idMacroMarket",referencedColumnName="idMacroMarket")
private Macro_market macMar;
Благодарим Вас за ап swers.
Это может работать: ВЫБРАТЬ m.nameMacroSegment ОТ Macro_market м, m.customers гр WHERE c.idCustomer =: ID – kostja
@kostja: Ok для запроса, но теперь у меня есть эта ошибка: m.customers не сопоставлен [SELECT m.nameMacroSegment FROM com.CustomerRequirement.entities.Macro_market m, m.customers c WHERE c.idCustomer =: id] –
Я просто догадался, как может выглядеть ваше сопоставление. Я предположил, что, поскольку «MakroMarket» имеет отношение «OneToMany» к «Клиенту», его можно назвать «клиентами». Вы должны использовать любое фактическое имя поля. PS - это помогло бы, если бы вы разместили код для двух объектов - только соответствующее объявление класса деталей, членов, аннотаций, методов, комментариев. – kostja