Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaSpring:datatable在使用DAO和Serializable时不起作用_Java_Spring_Hibernate_Dao_Serializable - Fatal编程技术网

JavaSpring:datatable在使用DAO和Serializable时不起作用

JavaSpring:datatable在使用DAO和Serializable时不起作用,java,spring,hibernate,dao,serializable,Java,Spring,Hibernate,Dao,Serializable,我正在尝试使用(JavaSpring、hibernate、mysql、jquery、javascript)填充jsp数据表 DAO的设计和使用可序列化的库 问题是,尽管表在数据库中有一些行,但网页上并没有显示任何数据 控制器类: @Autowired private BrickDAO brickDAO; @Autowired private BrickDetDAO brickDetDAO; private static final Logger logger = LoggerFactory.

我正在尝试使用(JavaSpring、hibernate、mysql、jquery、javascript)填充jsp数据表 DAO的设计和使用可序列化的库

问题是,尽管表在数据库中有一些行,但网页上并没有显示任何数据

控制器类:

@Autowired
private BrickDAO brickDAO;

@Autowired
private BrickDetDAO brickDetDAO;

private static final Logger logger = LoggerFactory.getLogger(ManagementController.class);

@RequestMapping(value="/bricks", method=RequestMethod.GET)
public ModelAndView showManageBricks(@RequestParam(name="operation", required=false) String operation) {


        ModelAndView mv = new ModelAndView("page");

        mv.addObject("userClickManageBricks", true);
        mv.addObject("title", "Manage Bricks");
        Brick nBrick = new Brick(); 



        mv.addObject("brick", nBrick);

        if(operation!=null) {

            if(operation.equals("brick"))
            {
                mv.addObject("message", "Record Submitted Successfully!");
            }
        }

        return mv;
    }


@RequestMapping(value="/{id}/brick", method=RequestMethod.GET)
public ModelAndView showEditBricks(@PathVariable int id) {


    ModelAndView mv = new ModelAndView("page");

    mv.addObject("userClickManageBricks", true);
    mv.addObject("title", "Manage Bricks");
    Brick nBrick = brickDAO.get(id);

  mv.addObject("brick", nBrick);



    return mv;
}



@RequestMapping(value="/bricks", method=RequestMethod.POST)
public String handleProductSubmission(@Valid @ModelAttribute("brick") Brick mBrick, BindingResult results, Model model, HttpServletRequest request) {



    if(results.hasErrors())
    {

        model.addAttribute("userClickManageBricks", true);
        model.addAttribute("title", "Manage Bricks");
        model.addAttribute("message", "Validation failed for Product Submission");

        return "page";
    }

    logger.info(mBrick.toString());

    if(mBrick.getId() == 0) {

        brickDAO.add(mBrick);

    }
    else
    {
        brickDAO.update(mBrick);
    }



    return "redirect:/manage/bricks?operation=brick";

}


@RequestMapping(value = "/brickdetail", method=RequestMethod.POST)
public String managePostCategory(@ModelAttribute("brickdetail") BrickDetail mBrickDetail, HttpServletRequest request) {                 
    brickDetDAO.add(mBrickDetail);      
    return "redirect:" + request.getHeader("Referer") + "?success=category";
}



@ModelAttribute("brickdetail")
public List<BrickDetail> getBrickDetail() {
    return brickDetDAO.list();
}
}

DAO接口

公共接口BrickDAO{

Brick get(int brickId);
List<Brick> list(); 
boolean add(Brick brick);
boolean update(Brick brick);
boolean delete(Brick brick);

List<Brick> getBricksByParam(String param, int count);  
}
Brick-get(int-brickId);
List();
布尔加法(砖块);
布尔更新(砖块);
布尔删除(砖块);
列出getBricksByParam(字符串参数,int计数);
}
DAOImpl:

@Autowired
private SessionFactory sessionFactory;


@Override
public Brick get(int brickId) {
    try {           
        return sessionFactory
                .getCurrentSession()
                    .get(Brick.class,Integer.valueOf(brickId));         
    }
    catch(Exception ex) {       
        ex.printStackTrace();           
    }
    return null;
}

@Override
public List<Brick> list() {
    return sessionFactory
            .getCurrentSession()
                .createQuery("FROM Brick" , Brick.class)
                    .getResultList();
}

@Override
public boolean add(Brick brick) {
    try {           
        sessionFactory
                .getCurrentSession()
                    .persist(brick);
        return true;
    }
    catch(Exception ex) {       
        ex.printStackTrace();           
    }       
    return false;
}


@Override
public boolean update(Brick brick) {
    try {           
        sessionFactory
                .getCurrentSession()
                    .update(brick);
        return true;
    }
    catch(Exception ex) {       
        ex.printStackTrace();           
    }       
    return false;       
}

@Override
public boolean delete(Brick brick) {
    try {

return this.update(brick);
    }
    catch(Exception ex) {       
        ex.printStackTrace();           
    }       
    return false;           
}



public List<Brick> listActiveBricksByCategory(int categoryId) {
    String selectActiveBricksByCategory = "FROM Brick WHERE active = :active AND categoryId = :categoryId";
    return sessionFactory
            .getCurrentSession()
                .createQuery(selectActiveBricksByCategory, Brick.class)
                    .setParameter("active", true)

                    .setParameter("categoryId",categoryId)
                        .getResultList();
}

@Override
public List<Brick> getLatestActiveBricks(int count) {
    return sessionFactory
            .getCurrentSession()
                .createQuery("FROM Product WHERE active = :active ORDER BY id", Brick.class)
                    .setParameter("active", true)
                        .setFirstResult(0)
                        .setMaxResults(count)
                            .getResultList();                   
}


@Override
public List<Brick> getBricksByParam(String param, int count) {

    String query = "FROM Brick WHERE  ORDER BY " + param + " DESC";

    return sessionFactory
                .getCurrentSession()
                .createQuery(query,Brick.class)
                .setFirstResult(0)
                .setMaxResults(count)
                .getResultList();


}
@Autowired
私人会话工厂会话工厂;
@凌驾
公共砖块获取(int brickkid){
试试{
返回会话工厂
.getCurrentSession()
.get(Brick.class,Integer.valueOf(brickId));
}
捕获(例外情况除外){
例如printStackTrace();
}
返回null;
}
@凌驾
公开名单(){
返回会话工厂
.getCurrentSession()
.createQuery(“来自Brick”,Brick.class)
.getResultList();
}
@凌驾
公共布尔添加(砖){
试试{
会话工厂
.getCurrentSession()
.坚持(砖块);
返回true;
}
捕获(例外情况除外){
例如printStackTrace();
}       
返回false;
}
@凌驾
公共布尔更新(砖块){
试试{
会话工厂
.getCurrentSession()
.更新(砖块);
返回true;
}
捕获(例外情况除外){
例如printStackTrace();
}       
返回false;
}
@凌驾
公共布尔删除(砖块){
试一试{
返回此。更新(砖块);
}
捕获(例外情况除外){
例如printStackTrace();
}       
返回false;
}
公共列表listActiveBricksByCategory(int categoryId){
字符串selectActiveBricksByCategory=“FROM Brick WHERE active=:active AND categoryId=:categoryId”;
返回会话工厂
.getCurrentSession()
.createQuery(选择ActiveBricksByCategory,Brick.class)
.setParameter(“活动”,真)
.setParameter(“categoryId”,categoryId)
.getResultList();
}
@凌驾
公共列表getLatestActiveBricks(整数计数){
返回会话工厂
.getCurrentSession()
.createQuery(“来自活动产品=:按id的活动订单”,Brick.class)
.setParameter(“活动”,真)
.setFirstResult(0)
.setMaxResults(计数)
.getResultList();
}
@凌驾
公共列表getBricksByParam(字符串参数,整数计数){
String query=“FROM Brick WHERE ORDER BY”+param+“DESC”;
返回会话工厂
.getCurrentSession()
.createQuery(查询,Brick.class)
.setFirstResult(0)
.setMaxResults(计数)
.getResultList();
}

提前感谢

这是实体类而不是DTO。DTO是可用于代理对象的数据传输对象。请确保在调试时,Id保持为0,且不会增加到1。这可能是由于控制台上没有显示表格的选择。该问题与控制器未调用实体类或Id设置器未递增为1有关。因此,jquery表中没有显示任何结果这是一个使用lombok的好时机,我知道它与您的问题无关,但它将在将来帮助您。它是实体类而不是DTO。DTO是可用于代理对象的数据传输对象。请确保在调试时,Id保持为0,且不会增加到1。这可能是由于控制台上没有显示表格的选择。该问题与控制器未调用实体类或Id设置器未递增为1有关。因此,jquery表中没有显示任何结果这是一个使用lombok的好时机,我知道这与您的问题无关,但它将在将来帮助您。
@Autowired
private SessionFactory sessionFactory;


@Override
public Brick get(int brickId) {
    try {           
        return sessionFactory
                .getCurrentSession()
                    .get(Brick.class,Integer.valueOf(brickId));         
    }
    catch(Exception ex) {       
        ex.printStackTrace();           
    }
    return null;
}

@Override
public List<Brick> list() {
    return sessionFactory
            .getCurrentSession()
                .createQuery("FROM Brick" , Brick.class)
                    .getResultList();
}

@Override
public boolean add(Brick brick) {
    try {           
        sessionFactory
                .getCurrentSession()
                    .persist(brick);
        return true;
    }
    catch(Exception ex) {       
        ex.printStackTrace();           
    }       
    return false;
}


@Override
public boolean update(Brick brick) {
    try {           
        sessionFactory
                .getCurrentSession()
                    .update(brick);
        return true;
    }
    catch(Exception ex) {       
        ex.printStackTrace();           
    }       
    return false;       
}

@Override
public boolean delete(Brick brick) {
    try {

return this.update(brick);
    }
    catch(Exception ex) {       
        ex.printStackTrace();           
    }       
    return false;           
}



public List<Brick> listActiveBricksByCategory(int categoryId) {
    String selectActiveBricksByCategory = "FROM Brick WHERE active = :active AND categoryId = :categoryId";
    return sessionFactory
            .getCurrentSession()
                .createQuery(selectActiveBricksByCategory, Brick.class)
                    .setParameter("active", true)

                    .setParameter("categoryId",categoryId)
                        .getResultList();
}

@Override
public List<Brick> getLatestActiveBricks(int count) {
    return sessionFactory
            .getCurrentSession()
                .createQuery("FROM Product WHERE active = :active ORDER BY id", Brick.class)
                    .setParameter("active", true)
                        .setFirstResult(0)
                        .setMaxResults(count)
                            .getResultList();                   
}


@Override
public List<Brick> getBricksByParam(String param, int count) {

    String query = "FROM Brick WHERE  ORDER BY " + param + " DESC";

    return sessionFactory
                .getCurrentSession()
                .createQuery(query,Brick.class)
                .setFirstResult(0)
                .setMaxResults(count)
                .getResultList();


}