67,512
社区成员
发帖
与我相关
我的任务
分享
create table Person(
id number primary key not null,
name nvarchar2(40) not null,
age number not null
);
create sequence person_id;
<property name="hbm2ddl.auto">validate</property>
public class Person {
private int id;
private String name;
private int age;
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="personSEQ")
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public class test {
public static void main(String[] args) {
Person p = new Person();
p.setName("xx3");
p.setAge(14);
Session session = new AnnotationConfiguration().configure().buildSessionFactory().getCurrentSession();
session.getTransaction().begin();
session.save(p);
session.getTransaction().commit();
}
}
Exception in thread "main" org.hibernate.HibernateException: Wrong column type in CH.PERSON for column name. Found: nvarchar2, expected: varchar2(255 char)
at org.hibernate.mapping.Table.validateColumns(Table.java:284)
at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1130)
at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:139)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:359)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1341)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
at com.jxc.test.test.main(test.java:16)
<property name="name">
<column name="name" sql-type="nvarchar2(20)"></column>
</property>
@Entity
@SequenceGenerator(name="personSEQ", sequenceName="person_id",allocationSize=1,initialValue=1)