Java Hibernate更新@ManyToMany集合
我有一个@ManyToMany关系,由Java Hibernate更新@ManyToMany集合,java,hibernate,many-to-many,update-statement,Java,Hibernate,Many To Many,Update Statement,我有一个@ManyToMany关系,由连接表映射,如下所示 @ManyToMany(fetch = FetchType.LAZY) @JoinTable(name = "CERTIFICADO_PAIS", joinColumns = { @JoinColumn(name = "CERTIFICADO_ID", referencedColumnName = "ID") }, inverseJoinColumns = { @JoinColumn(name = "PAIS_ID", refe
连接表映射,如下所示
@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;
}
我不想更新父实体(certificado),因为我没有在对象中填充有关对象的所有信息。我只恢复所需的信息,具体取决于我在应用程序中的位置。
所以certificado.update(certificado)
不是一个解决方案
我不想映射JOIN\u表(CERTIFICADO\u PAIS)
@OneToMany-联接表
-@ManyToOne
SQL查询是解决方案吗?是否可以在最新版本的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 ':'
您的查询是错误的,如果您在查询中使用,则使用q.setParameterList(“,list)
(q.setParameter(“paisDTOs”,certificadoDTO.getPaisDTOs())
但我遇到了另一个错误。主要问题是hibernate是否允许使用hql查询更新集合。@BustakaS您曾经找到过解决方案吗,还是必须求助于本机查询?
hibernate.hql.PARSER - line 1:101: expecting IDENT, found ':'