java - ORA-00904 : : invalid identifier Issue with Hibernate Dependent objects program

标签 java oracle hibernate

我正在研究一个简单的 hibernate dependent objects使用 Oracle 作为我的数据库的程序。

这是我的 POJO 类:

public class Person {
    private java.util.Date birthday;
    private Name name;
    private String key;
    ... getters & setters ...
}

姓名

public class Name {
    char initial;
    String first;
    String last;
        ... getters & setters ...
}

hibernate 映射文件:

person.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>

我已在我的 hibernate.cfg.xml 文件中将 hbm2ddl.auto 属性设置为 update,因此在我执行我的操作时会创建表程序。

这是我尝试保存 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 ERROR SchemaUpdate:235 - HHH000388: Unsuccessful: create table person1 (pid varchar2(255) not null, birthday date, initial char(1), first varchar2(255), last varchar2(255), primary key (pid))

15:20:45,376 ERROR SchemaUpdate:236 - ORA-00904: : invalid identifier

我尝试更改 Person 类和 Name 类中的属性名称,但我仍然面临这个问题。请让我知道我哪里做错了?

最佳答案

无效标识符并不意味着您的主键错误,它意味着其中一个列标识符无效。我相信您的问题是“初始”列,这是 Oracle 中的保留字。

http://docs.oracle.com/cd/B19306_01/server.102/b14200/ap_keywd.htm

关于java - ORA-00904 : : invalid identifier Issue with Hibernate Dependent objects program,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20968840/

相关文章:

SQL Server : how to imitate oracle keep dense_rank query?

Hibernate 抛出空指针异常

java - Spring 安全: provide access depending on service call

regex - 句子中的最后一个单词 : In SQL (regular expressions possible? )

sql - 将聚合计数拆分为行

java - 从 hibernate 查询中获取 java.util.map 列表形式的结果

java - 使用 Hibernate 将 csv 文件导入 MySQL 数据库

java - Park Unpark 开发自定义阻塞队列

java - 我如何对这个 inputStream 进行单元测试已经关闭?

java - java-17-openjdk-amd64 中的 'javac' 在哪里?