После поиска я узнал, что в JPQL нет права Присоединиться к JPQL. Я видел, что есть другой способ добиться этого, используя JPA двунаправленный (не правильно присоединяйся, но используя объект pojo), но одна вещь, которую я заметил в консоли, что он делает много вызовов в базе данных, например, см. Ниже таблицу.JPQL Right Присоединиться
Flat Table UserToFlat User
| Flat_ID | Flat No | | ID | Flat_ID | User_ID | | User_ID | Name |
| 1 | 101 | | 1 | 1 | 1 | | 1 | XYZ |
| 2 | 102 | | 2 | 2 | 2 | | 2 | PQR |
| 3 | 103 | | 3 | 3 | 3 | | 3 | ABC |
| 4 | 104 |
Я хочу, чтобы все строки из плоской таблицы и только совпадающие строки из таблицы User
// below query do not work as flat is having primary key and usertoflat having foreign key
select f, u from FlatEntity f left join f.userToFlatEntity uf join uf.user u;
// now if I try right join then jpql throws exception
select f from UserToFlatEntity uf right join uf.flatEntity f;
Теперь, если я использую jpql birectional и приведи с помощью объекта для например
// suppose I have FlatEntity Object
flatEntity.getUserToFlatEntity();
выше код будет попадает в базу данных для каждой квартиры нет, где условие flat_ID =? (4 раза в этом случае), и я думаю, что это не очень хорошая производительность.
Итак, можно ли каким-либо образом JPQL добиться правильного соединения без эффекта.
Объект Конфигурация
public class FlatEntity {
@OneToOne(mappedBy = "flatEntity")
private UserToFlatEntity userToFlatEntity;
// getter setter
}
public class UserToFlatEntity {
@ManyToOne
@JoinColumn(name = "flatId", insertable = false, updatable = false)
private FlatEntity flatEntity;
}
public class UserEntity {
@OneToMany(mappedBy = "userEntity")
private Set<UserToFlatEntity> userToFlatEntitySet;
}
Exception
Path expected for join!
at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromJoinElement(HqlSqlWalker.java:369)
Там находится прямо присоединиться JPQL. –
@DraganBozanovic Не могли бы вы привести мне пример, потому что я получаю ошибку. Я отправляю конфигурацию отображения. – pise
Я не вижу каких-либо предложений 'from' в ваших запросах. Сначала я предлагаю вам пройти несколько учебных пособий по Hibernate/JPA. –