Как я могу получить доступ к объединенному столбцу в запросе набора критериев множественного выбора?

0

класс таблицы:

private static final long serialVersionUID = 1L;
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
@JoinColumn(name = "SUBSYSTEM_ID", referencedColumnName = "ID")
@ManyToOne
private Subsystem subsystem;

@Transient
private Long subsystemId;

И КРИТЕРИИ QUERY:

public PagedSearchResult<Tuple> findByUserId1(Long id, UserSubsystemSearchCriteria searchCriteria) {
        final CriteriaBuilder criteriaBuilder = getEntityManager().getCriteriaBuilder();
        final CriteriaQuery<Tuple> query = criteriaBuilder.createTupleQuery();
        final Root<UserSubsystem> from = query.from(UserSubsystem.class);
        query.multiselect(from.get("subsystemId"));
        query.groupBy(from.get("subsystemId"));

ЕСЛИ я удаляю объединение и переходный переход к определению столбца, который он работает, но мне нужно это соединение. пожалуйста помоги

enter code here
Теги:
hibernate-criteria
many-to-one
criteriaquery

1 ответ

0

Не знаете, чего вы пытаетесь достичь, но самое простое решение

@Entity
class UserSubsystem {

    private static final long serialVersionUID = 1L;

    @Id
    private Long id;

    @JoinColumn(name = "SUBSYSTEM_ID", referencedColumnName = "ID")
    @ManyToOne
    private Subsystem subsystem;

    @Column(name = "SUBSYSTEM_ID", updatable = false, insertable = false)
    private Long subsystemId;

}

и запрос

CriteriaBuilder criteriaBuilder = getEntityManager().getCriteriaBuilder();
CriteriaQuery<UserSubsystem> query = criteriaBuilder.createQuery(UserSubsystem.class);
Root<UserSubsystem> from = query.from(UserSubsystem.class);
from.fetch("subsystem", JoinType.LEFT);
query.groupBy(from.get("subsystemId"));
entityManager.createQuery(query);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню