无法获得不同的查询结果

时间:2021-05-18 06:41:09

标签: hibernate

此查询的结果有重复数据:

@Override
    public List<MenuProfil> getMenuProfilAccessible(ProfilUtilisateur profil) {
        List<MenuProfil> retour = null;
        try {
            CriteriaBuilder builder = getSession().getCriteriaBuilder();
            CriteriaQuery<MenuProfil> criteriaQuery = builder.createQuery(MenuProfil.class);
            Root<MenuProfil> root = criteriaQuery.from(MenuProfil.class);
            criteriaQuery.where(builder.equal(root.get("profile"), profil.getId()));
            retour = getSession().createQuery(criteriaQuery).getResultList();
        } catch (Exception ex) {
            throw ex;
        }
        return retour;
    }

MenuProfil 模型:

@Entity
@Table(name = "menuprofil")
public class MenuProfil extends BaseModele {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    
    @ManyToOne
    @JoinColumn(name = "profile", referencedColumnName = "id")
    private ProfilUtilisateur profile;
    
    @ManyToOne
    @JoinColumn(name = "menu", referencedColumnName = "id")
    private Menu menu;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public ProfilUtilisateur getProfile() {
        return profile;
    }

    public void setProfile(ProfilUtilisateur profile) {
        this.profile = profile;
    }

    public Menu getMenu() {
        return menu;
    }

    public void setMenu(Menu menu) {
        this.menu = menu;
    }

    public MenuProfil() {
    }

    public MenuProfil(int id) {
        this.id = id;
    }
       
}

我尝试通过指定 criteriaQuery.distinct(true); 但没有任何变化!那么在这种情况下如何删除重复项?

0 个答案:

没有答案
相关问题