【问题标题】:HQL SQL GrammarException : Could not extract ResultSet from ManyToMany Field QueryHQL SQL GrammarException:无法从多对多字段查询中提取结果集
【发布时间】:2021-01-22 09:36:26
【问题描述】:

我遇到了以下异常:

javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: 无法提取 ResultSet。

我有以下课程Organisation。看看我的@ManyToMany 属性sousTraitantsdonneurDOrdre

@Entity
@Table( name = "t_organisation" , indexes = {
} )
public class Organisation implements Serializable {

    @Id
    @Column( name = "N_ID" )
    @GeneratedValue( strategy = GenerationType.IDENTITY )
    protected Long id;

    @Basic
    @Column( name = "C_RAISONSOCIALE", nullable = false )
    private String raisonSociale;

    @OneToMany( fetch = FetchType.LAZY, cascade = CascadeType.PERSIST, mappedBy = "organisation"  )
    private Set<Individu> personnels;
    
    @ManyToMany(cascade = { CascadeType.ALL })
    @JoinTable(
        name = "SousTraitant_Organisation", 
        joinColumns = { @JoinColumn(name = "N_DONNEURDORDRE_ORGID") }, 
        inverseJoinColumns = { @JoinColumn(name = "N_SOUSTRAITANT_ORGID") }
        )
    private Set<Organisation> sousTraitants = new HashSet<>();
    
    @ManyToMany(mappedBy = "sousTraitants")
    private Set<Organisation> donneurDOrdre = new HashSet<>();

我尝试了以下查询来检索Organisation 的列表:

List<Organisation> result = HibernateUtil.getCurrentSession()
.createQuery( "SELECT o FROM " + Organisation.class.getName() + " o JOIN o.sousTraitants WHERE o.donneurDOrdre = :idDonneurDOrdre", Organisation.class )
.setParameter( "idDonneurDOrdre", idDonneurDOrdre )
.getResultList();

但我仍然有相同的异常消息,我不知道是我的@ManyToMany 注释错误还是我的查询。

【问题讨论】:

    标签: hibernate many-to-many hql


    【解决方案1】:

    听起来我找到了答案:

    return HibernateUtil.getCurrentSession()
                    .createQuery( "SELECT o FROM " + Organisation.class.getName() + " o JOIN o.sousTraitants s WHERE s.id = :idDonneurDOrdre", Organisation.class ).setParameter( "idDonneurDOrdre", idDonneurDOrdre ).getResultList();
    

    【讨论】:

      猜你喜欢
      • 2012-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-14
      • 1970-01-01
      相关资源
      最近更新 更多