【发布时间】:2017-06-29 11:45:58
【问题描述】:
我想列出所有符合条件的用户,其中 id = formId。该代码正在运行,但只是列出了所有用户,而不是被 formId 过滤。请告诉我我在哪里做错了。如果您需要更多信息来解决这个问题,请告诉我!
控制器
*url = http://localhost:8080/User/Panda?Id=1
@RequestMapping(value = {"/{name}?Id={id}" }, method = RequestMethod.GET)
public String listClinicUser(ModelMap model, @PathVariable("id") Integer id) {
logger.info("Users List Page - Id = " + id);
List<User> user = service.findAllUsers(id);
model.addAttribute("users", user);
return "user/list";
}
服务
public List<User> findAllUsers(Integer id) {
return dao.findAllUsers(id);
}
DAO 类
public interface UserDao {
List<User> findAllUsers(Integer id);
}
*DAOImpl 类
@SuppressWarnings("unchecked")
public List<User> findAllUsers(Integer id) {
Criteria crit = createEntityCriteria();
crit.add(Restrictions.eq("formId",id));
crit.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
List<User> users = (List<Usert>) crit.list();
return users;
}
*对于我在另一个类中创建的 createEntityCriteria() 调用 abstractDao 并扩展到它。
private final Class<T> persistentClass;
@SuppressWarnings("unchecked")
public AbstractDao(){
this.persistentClass =(Class<T>) ((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments()[1];
}
protected Criteria createEntityCriteria(){
return getSession().createCriteria(persistentClass);
}
类实体
@Entity
@Table(name="USER")
public class User implements Serializable{
@NotEmpty
@Column(name="formId", nullable=false)
private Integer formId;
@NotEmpty
@Column(name="FIRST_NAME", nullable=false)
private String firstName;
@NotEmpty
@Column(name="LAST_NAME", nullable=false)
private String lastName;
public Integer getFormId() {
return formId;
}
public void setFormId(Integer formId) {
this.formId= formId;
}
...
}
【问题讨论】:
-
同时添加用户实体类。
-
@StanislavL 已添加!
-
据我所见,看起来不错。您能否提供更多信息 - dao 代码? createEntityCriteria(); ?
-
@StanislavL 我添加了,但与此方法相关的代码并不多。希望对您有所帮助!
-
我发现发布的代码没有问题...
标签: spring hibernate model-view-controller