我正在研究一个简单的休眠依赖对象 http://docs.jboss.org/hibernate/orm/4.2/manual/en-US/html/ch09.html#components-dependentobjects程序使用Oracle
作为我的数据库。
这是我的 POJO 课程:
Person
public class Person {
private java.util.Date birthday;
private Name name;
private String key;
... getters & setters ...
}
Name
public class Name {
char initial;
String first;
String last;
... getters & setters ...
}
休眠映射文件:
人.hbm.xml
<hibernate-mapping>
<class name="Person" table="person1">
<id name="Key" column="pid" type="string">
<generator class="uuid" />
</id>
<property name="birthday" type="date" />
<component name="Name" class="Name"> <!-- class attribute optional -->
<property name="initial" />
<property name="first" />
<property name="last" />
</component>
</class>
</hibernate-mapping>
我已经设置了hbm2ddl.auto
财产为update
in my hibernate.cfg.xml
文件,以便在我执行程序时创建表。
这是我的简单程序,尝试保存 Person 对象的实例:
public class Program {
public static void main(String[] args) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Name name = new Name();
name.setFirst("First");
name.setLast("First");
name.setInitial('I');
Person person = new Person();
person.setBirthday(new Date());
person.setName(name);
session.save(person);
session.getTransaction().commit();
HibernateUtil.getSessionFactory().close();
}
}
现在,当我执行该程序时,在创建表本身时出现错误:
15:20:45,376 错误架构更新:235 - HHH000388:失败:创建
表 person1 (pid varchar2(255) 不为空,生日日期,首字母
char(1),第一个 varchar2(255),最后一个 varchar2(255),主键 (pid))
15:20:45,376 错误 SchemaUpdate:236 - ORA-00904:: 无效标识符
我尝试更改我的属性名称Person
类以及Name
类,但我仍然面临这个问题。请让我知道我在哪里做错了?