powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate Specification (Criteria) API
2 сообщений из 2, страница 1 из 1
Hibernate Specification (Criteria) API
    #39688560
alexander00513
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, подскажите пожалуйста, могу ли я с помощью api из заголовка сджойнить 2 таблички, при том, что у меня явно не прописана связь, на уровне полей объекта ? Т.е. к пример есть объект Post, у него помимо его каких то полей есть поле createdBy: String - в нём содержится login пользователя, а попадает он туда из hibernate audit, но это не так важно. Есть так же объект User и у него помимо его каких то полей есть поле login, в котором содержится этот самый логин. На уровне sql это выглядело бы так
Код: sql
1.
2.
3.
select p.id
from post p
  inner join jhi_user contact ON p.created_by = contact.login;



Это часть от большого sql.

На уровне хибера это выглядело бы примерно так

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
private Specification<Post> createSpecification(PostCriteria criteria) {
        return (root, query, cb) -> {
            Specification<Post> s = Specification.where(null);

            Join<Post, User> contact = root.join("jhi_user", JoinType.INNER);
            contact.alias("contact");
            contact.on(cb.equal(contact.get(User_.login), root.get(Post_.createdBy)));

            root.joinSet(, JoinType.INNER);

            return s.toPredicate(root, query, cb);
        };
    }



Но на это я логично получаю

Код: powershell
1.
org.springframework.dao.InvalidDataAccessApiUsageException: Unable to locate Attribute  with the the given name [jhi_user] on this ManagedType [*.domain.AbstractAuditingEntity]; nested exception is java.lang.IllegalArgumentException: Unable to locate Attribute  with the the given name [jhi_user] on this ManagedType [*.domain.AbstractAuditingEntity]



Или в этом и идея критерии, что она предоставляет интерфейс для типобезопасного построения запросов и вот такие кастомные вещи не разрешает ?
Я могу написать и просто query и native query - но мне не очень хочется обыгрывать её if else и собирать из кусочков строк, что бы добавить фильтрации по нескольким полям.
...
Рейтинг: 0 / 0
Hibernate Specification (Criteria) API
    #39688563
alexander00513
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
там лишняя строка в java коде, случайно попала
Код: java
1.
root.joinSet(, JoinType.INNER);
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate Specification (Criteria) API
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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