Да, вы можете присоединиться к этим объектам и получать данные, не добавляя отношения, используя JPA, но это немного теряет цель использования JPA.
Сначала необходимо создать класс java, который будет быть возвращаемым объектом данных из БД. После этого вы можете использовать метод createNamedQuery для entityManager, чтобы получить результат.
createNamedQuery(String sqlString, ResultClass.Class)
sqlString может выглядеть примерно так:
SELECT INV.INVOICE_ID
INV.CODE
INV_ITEMS.INV_ITEM_ID
FROM INVOICE INV
JOIN INVOICE_ITEMS INV_ITEMS
ON INV.INVOICE_ID = INV_ITEMS.INVOICE_ID;
И соответствующий ResultClass:
public class ResultClass {
private Long invoiceID;
private String code;
private Long invItemID;
// other columns
}
Или вы даже можете использовать RowMapper для отображения объекта самостоятельно для большей гибкости, используя JdbcTemplate с методом query ().