Java Hibernate,Criteria.list()返回我期望的更多行

Java Hibernate,Criteria.list()返回我期望的更多行,java,hibernate,Java,Hibernate,我对spring和hibernate的项目有问题: 在我的数据库(mysql)中,我有以下表: table Operator{ idOperator int(12) primary key auto_increment, name varchar(20), surname varchar(20), username varchar(20), password varchar(20), type varchar(2) } eng

我对spring和hibernate的项目有问题:

在我的数据库(mysql)中,我有以下表:

table Operator{
     idOperator int(12) primary key auto_increment,
     name varchar(20),
     surname varchar(20),
     username varchar(20),
     password varchar(20),
     type varchar(2)
     } engin=InnoDB;

 table Customer{
      idCustomer int primary key,
      name varchar(20),
      surname varchar(20),
      lastOrder date,
 } engine = InnoDB;
以及前两个表之间的多对多关系:

table portfolio{
    idOperator int,
    idCustomer int,
    foreign key(idOperator) references Operator(idOperator)on update cascade on delete cascade
    foreign key(idCustomer) references Customer(idCustomer) on update cascade on delete cascade
}engine = InnoDB;
在运算符的实体类中,我以以下方式映射表:

@Id
@Column(name = "idOperator")
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;

@Column(name = "name")
private String name;

@Column(name = "surname")
private String surname;

@Column(name = "username")
private String username;

@Column(name = "password")
private String password;

@Column(name = "type")
private String type;

@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinTable(name = "portfolio", joinColumns = {
    @JoinColumn(name = "idOperator")}, inverseJoinColumns = {
    @JoinColumn(name = "idCustomer")
})
private List<Customer> customers = new ArrayList<Customer>();
结果包括每个操作员在关系“投资组合”中参与的次数相等的时间数

有人能帮我吗?谢谢

请尝试以下方法:

Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Operator.class);
    criteria.add(Restrictions.eq("type","ad"));
criteria.setProjection(Projections.distinct(Projections.property("id")))
    return criteria.list();

尝试在您的标准中使用Projections.distinct我尝试了您的提示,但我得到了以下错误:javax.el.PropertyNotFoundException:在java.lang.Integer类型上找不到属性“id”?您的实体中是否有id的getter和setter?是的,现在我解决了添加以下行的问题:criteria.setResultTrasformer(criteria.distinct\u ROOT\u entity);
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Operator.class);
    criteria.add(Restrictions.eq("type","ad"));
criteria.setProjection(Projections.distinct(Projections.property("id")))
    return criteria.list();