如何使用Hibernate在DB中查找所有数据?

时间:2014-07-31 09:54:03

标签: java spring hibernate

我有以下课程

@Entity
@Table(name="prm_user_permission")
public class UserPermission {

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="prm_permission_id")
private Integer permissionId;

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

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

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

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

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

@Column(name="prm_create_user")
private Integer creatUser;

@Column(name="prm_parent_id")
private Integer parentId;

@Column(name="prm_system_id")
private Integer systemId;

 // Getter and Setter

我的代码是

public List<UserPermission> findAllBySystemId(int systemId) {
    List<UserPermission> userPermission =    criteria().setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
            .add(eq("UserPermission.systemId", systemId).list();
    return userPermission;
}

现在我想通过&#34; systemId&#34;从这个(UserPermission)表中获取所有数据。如果我通过systemId = 1,那么它应该给出列为&#39; 1&#39;的所有数据。 。 我的代码有什么问题?运行时显示错误,如

org.hibernate.QueryException: could not resolve property: UserPermission of:  
com.kgfsl.collections.core.security.models.UserPermission

Plz任何人的帮助

2 个答案:

答案 0 :(得分:0)

criteria()方法返回什么?

并直接尝试systemId(例如:删除UserPermission.

答案 1 :(得分:0)

尝试使用Restrictions.eq()

public List<UserPermission> findAllBySystemId(int systemId) {
    List<UserPermission> userPermission = criteria().setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY) 
                                .add(Restrictions.eq("systemId", systemId)).list();
    return userPermission;
}

假设您的criteria()方法是,

session.createCriteria(UserPermission.class)