此查询的结果有重复数据:
@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);
但没有任何变化!那么在这种情况下如何删除重复项?