相关疑难解决方法(0)

Criteria.DISTINCT_ROOT_ENTITY不会阻止重复的对象

我有以下dao方法:

@Override
public List<AdminRole> findAll() {
    Session session = sessionFactory.getCurrentSession();
    Criteria criteria = session.createCriteria(AdminRole.class);
    criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    return criteria.list();
}
Run Code Online (Sandbox Code Playgroud)

实际上我想从数据库中检索所有条目.

有时我看到重复.当我使用AdminRole添加用户时会发生这种情况.

我已经读过,当我使用EAGERfetch类型时,这是可能的,这应该是修复添加以下行:

criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
Run Code Online (Sandbox Code Playgroud)

但这对我没有帮助.

我的映射:

@Entity
@Table(name = "terminal_admin_role")
public class AdminRole {

    @Id
    @Column(name = "role_id", nullable = false, unique = true)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "user_id")
    @SequenceGenerator(name = "user_id", sequenceName = "user_id")
    private Long adminId;

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

    public AdminRole(String role) {
        this.role = role;
    }

    public AdminRole() {
    }

    // get set …
Run Code Online (Sandbox Code Playgroud)

java orm hibernate criteria hibernate-criteria

10
推荐指数
1
解决办法
1075
查看次数

标签 统计

criteria ×1

hibernate ×1

hibernate-criteria ×1

java ×1

orm ×1