RT
想实现的功能很简单,在向数据库插入的时候,主键ID自动增加。
可以使用Xml配置,即在 XXX.hbm.xml这样写:
     
<id name="主键在java类中的字段名" column="对应表中字段" type="类型 ">                    <generator class="native"/></id>或者使用Annotation配置,假设我这样写:@GeneratedValue是不是都可以实现我想达到的功能?但是我在实际试验的时候发现,第一种方法可行。但是在验证第二种方法的时候,出现点小问题。我是这样做的,在xxx.hbm.XML文件中把 <generator class="native"/>这句话删除,在Anntation中主键GET方法前加上@GeneratedValue
但是结无法插入,提示是说“Hiberanate抛错:"当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'student' 中的标识列插入显式值"
但是如果将xxx.hbm.XML文件中把 <generator class="native"/>这句话写上就没问题了。。但是明显的Anntation的主键省城策略没有起到作用

解决方案 »

  1.   

    在类名前边加上@Entity@Entity
    public class 类{}hibernate.cfg.xml文件里导的是com.xx.xx.entity不是XXX.hbm.xml
    annocation 和xml格式的应该不能同时用
      

  2.   

    楼上说的都对,xml和annotation不能混用,个人建议用annotation方式很简单
      

  3.   

    一个是注解配置方式,一个是xml配置方式。
      

  4.   

    谢谢各位,就是这个问题。Annotation与XML配置只能用一个。。但是,我在使用Annotation配置后,一直出现这个异常:接收TDS预登录响应时发生IO错误而使用XML文件配置就没任何问题。请问这是为什么??