Обновление Hibernate @ManyToMany коллекция

У меня есть отношение @ManyToMany, отображаемое JOIN TABLE как это

@ManyToMany(fetch = FetchType.LAZY)
    @JoinTable(name = "CERTIFICADO_PAIS", joinColumns = { @JoinColumn(name = "CERTIFICADO_ID", referencedColumnName = "ID") }, inverseJoinColumns = { @JoinColumn(name = "PAIS_ID", referencedColumnName = "ID") })
    public List<PaisDTO> getPaisDTOs() {
        return this.paisDTOs;
    }

я хочу обновить коллекцию через SET свойство в Hibernate Обновление оператора. запрос следующий

String hql= "UPDATE CertificadoDTO certificado SET " +
                "certificado.paisDTOs = :paisDTOs " +
                "WHERE certificado.id = :idCertificado ";

Query q = sessionFactory.getCurrentSession().createQuery(hql);
q.setParameterList("paisDTOs", certificadoDTO.getPaisDTOs());
q.setParameter("idCertificado", certificadoDTO.getId());
q.executeUpdate();

Я не хочу обновлять родительский объект (Certificado), потому что у меня нет всей информации об объекте, заполненном в объекте. Я восстанавливаю только информацию, необходимую в зависимости от того, где я нахожусь в моем приложении. Так certificadoDAO.update(certificado) это не решение

Я не хочу наносить на карту JOIN_TABLE (CERTIFICADO_PAIS) делает @OneToMany - JOIN TABLE - @ManyToOne

Является ли SQL-запрос решением? Можно ли обновить коллекцию SETTING свойство в последних версиях Hibernate?

Для меня было невозможно получить информацию об этом.

Спасибо!

Дополнительная информация

hql.ast.QueryTranslatorImpl  - parse() - HQL: UPDATE es.aemps.certificados.dto.CertificadoDTO certificado SET certificado.paisDTOs = :paisDTOs0_, :paisDTOs1_ WHERE certificado.id = :idCertificado 

Сообщение об ошибке

hibernate.hql.PARSER  - line 1:101: expecting IDENT, found ':'

0 ответов

Другие вопросы по тегам