读书人

hibernate annotations疑问,该如何处理

发布时间: 2012-05-12 15:39:31 作者: rapoo

hibernate annotations疑问
在学习hibernate annotation的时候遇到一个疑问:SQL SERVER数据库有自增主键的时候,使用annotations的时候设置@Id后,插入提示:当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'Teacher' 中的标识列插入显式值。

代码如下:

Java code
    public static void main(String[] args) {        Teacher t = new Teacher();        t.setName("annotations");        t.setTitle("annotations test");                Configuration cfg = new AnnotationConfiguration();        SessionFactory sf = cfg.configure().buildSessionFactory();        Session session = sf.openSession();        session.beginTransaction();        session.save(t);        session.getTransaction().commit();        session.close();        sf.close();                    }@Entitypublic class Teacher {    private int id;    private String name;    private String title;        @Id    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getTitle() {        return title;    }    public void setTitle(String title) {        this.title = title;    }


[解决办法]
先在数据库把IDENTITY_INSERT 设置为on
然后执行插入语句试试
[解决办法]
hbm.xml 标识列是否正确设置了设置了<id name="aid" type="java.lang.Integer">
<column name="aid" />
<generator class="native 标识类型" />
</id>

读书人网 >J2EE开发

热点推荐