小弟做网页应用,假设有个SELECT的框框,里面有选项,旁边有一个BUTTON,我选中选项,然后按BUTTON往数据库内插入一条选中内容的记录,但是同样的选项只能选一次,就是我再按一下按钮,数据库内还是只有一条记录。主键是自增的ID。
请各位帮忙

解决方案 »

  1.   

    如一楼 猫 所说 跟hibernate没啥关系
      

  2.   

    相同的值不能插入第二次,但是我选其他的就可以插入进表,这不是HIBERNATE的问题????????
      

  3.   

    或者是hql怎么写的,不能重复插入的时候后台有异常吗?
    按5楼描述,可能的问题比较多喵~~``
      

  4.   

    private static Session session=HSessionFactory.getSession();
    public void save(Temp temp) {
    Transaction tx = session.beginTransaction();
    session.save(temp);
    tx.commit();
    }后台没有异常抛出,在hibernate的配置文件中设置了show_sql为true,在第一次增加的时候,控制台显示HQL语句,但是同样内容第二次insert,控制台没有HQL语句显示
      

  5.   


    你都说你id是自增的了,所以说跟HIBERNATE没关系。至于不是id的记录是可以重复的
      

  6.   


     public void saveObject(String sel){
            Set set=session.getAttribute("objs");
            if(session.getAttribute("objs")==null)
                set=new HashSet();
            
            if(!set.contains(sel)){//如不包含相同的选项,调用dao的方法,将该选项添加到数据
                //...   调用添加选项的方法
            }
            set.add(sel.trim());//将选项添加入set,set会过滤相同的内容
            session.setAttribute("objs");
           //........
        }
    说明:将这个方法放到你的业务层,主要是判断选中的选项(sel)在set中是否存在,如果存在,则不添加,否则就保存到数据库。以上例子仅供参考!
      

  7.   

    楼主是利用AJAX进行提交的吗?如果是的话可能是缓存问题,有些AJAX框架处于性能考虑对相同的URL只执行一次,所以如果是这种情况,可考虑在ajax请求的url最后添加"&r="+(new Date()+1),伪造一个新的url
      

  8.   

    对,是AJAX!执行一次嘛?我试试
      

  9.   

    你把你的ajax代码贴出来,帮你看看原因