私はJPQLクエリの初心者ですが、JPQLクエリでSQLクエリを変換する方法がわかりません。
私は2つのテーブルを持っています:
- Customer(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;
ご回答ありがとうございます。