ORA-00904: : Hibernate 依赖对象程序的无效标识符问题

2024-01-10

我正在研究一个简单的休眠依赖对象 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类,但我仍然面临这个问题。请让我知道我在哪里做错了?


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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ORA-00904: : Hibernate 依赖对象程序的无效标识符问题 的相关文章

  • 我们可以在java中放弃已经签名的jar吗?

    I ve a jar文件具有旧签名 并希望使用新签名重新签名 是否可以 如果可能的话 怎么做 如果签名不是您拥有的 您需要先解压 jar 像这样 假设是unix 否则翻译成dos jar xvf JarName jar rm rf META
  • JAVA_HOME环境变量和Java JDK趣事

    我想让 Java 在 1 6xxx 上运行 我更改了 JAVA HOME 变量并将其指向目录 C Program Files Java jdk1 6 0 16 我重新启动 PC 我想我可以检查我的机器指向哪个版本的 Java 但它仍然指向旧
  • cygwin有java sdk吗?

    cygwin有java sdk吗 如果有一个使用 cygwin 文件系统和 X windows 进行显示的本机 cygwin 实现 那就太好了 不幸的是我不知道这样的版本 我认为移植 OpenJDK 也需要付出很大的努力 但我还没有尝试过
  • 如何测试 Jersey REST Web 服务?

    我已经编写了一个 Restful Web 服务 并且必须使用 JUnit4 对其进行测试 我已经使用 Jersey Client 编写了一个客户端 但想知道我是否只能使用 junit4 测试我的服务 至少有人可以帮我提供样品吗 我的休息服务
  • 如何在Java中使用我的密码加密和解密字符串(PC而非移动平台)? [复制]

    这个问题在这里已经有答案了 我想加密一个字符串然后将其放入文件中 当我想要的时候也想解密它 我不需要很强的安全性 我只是想让其他人更难获取我的数据 我尝试了几种方法 这是这些 Md5加密 如何在 Android 中对字符串进行哈希处理 ht
  • 如何通过两跳 SSH 隧道使用 JProfiler

    我正在尝试将 JProfiler 连接到在我将调用的服务器上运行的 JVMremote 该服务器只能从我的工作站访问 local 通过我将调用的另一台服务器middle 我的计划是将 JProfiler 连接到remote是这样的 安装 J
  • [TYPE] 类型的 Bean 'x' 不符合所有 BeanPostProcessors 的处理条件

    我有一个ResourceAspect class Component Aspect public class ResourceAspect Before execution public public void resourceAccess
  • docker 中带有参数的 jar 文件

    Helo 我有一个 java jar 文件 当我从终端运行它时 它会接受一堆参数作为输入 我想制作一个 docker 映像并运行它 其中包含 jar 文件 我仍然可以在其中传递 jar 文件的参数 将 jar 文件设置为您的入口点 http
  • 如何在不使用反射的情况下查看对象是否是数组?

    在Java中如何在不使用反射的情况下查看对象是否是数组 如何在不使用反射的情况下迭代所有项目 我使用 Google GWT 所以不允许我使用反射 我很想在不使用反射的情况下实现以下方法 private boolean isArray fin
  • 使用嵌入式 Jetty 7 发布 JAX-WS 端点

    有人可以帮忙吗 我想使用嵌入式 Jetty 7 作为端点 这是我尝试过的 public class MiniTestJetty WebService targetNamespace http public static class Calc
  • 使用 JavaFX 将可执行 Jar 限制为一个窗口

    我正在通过构建 JavaFX 应用程序E fx 剪辑 and Java场景生成器 基本功能是登录窗口 登录后 将打开新窗口 然后登录窗口消失 目前还处于原型阶段 用完eclipse后 我想要的功能都有了 启动时显示登录窗口 代码如下 Ove
  • Spring Boot - 如何在开发过程中禁用@Cacheable?

    我正在寻找两件事 如何在开发过程中使用 Spring boot dev 配置文件禁用所有缓存 application properties 中似乎没有通用设置可以将其全部关闭 最简单的方法是什么 如何禁用特定方法的缓存 我尝试像这样使用 S
  • oracle.jdbc.driver.OracleDriver ClassNotFoundException

    这是我收到错误的代码 我的classes12 jar已作为外部 jar 导入 import java io IOException import java io PrintWriter import java sql Connection
  • Hibernate 中的 UserType 加入

    在这种情况下 是否有可能让 hibernate 为某些 正确 值做 正确的事情 from ClassA a ClassB b where a prop b prop 问题是 prop 是一个 UserType 在连接表中具有不同的表示形式
  • jsch - 发送特殊键(CTRL-C、CTRL-D 等)

    我需要向远程终端发送特殊密钥 如何使用 JSCH 做到这一点 Thanks Walter 尝试发送两个字节 0x03 0x04 Check ASCII 表 http www bbdsoft com ascii html了解更多
  • JPA:如何从多个表的列组合实体(不将实体保存到多个表)

    我有两个实体 Entity Table name TableA public class TableA Id Column name id long id Column name tableB id long tbId Column nam
  • java中从视频中提取图像

    我想知道如何使用 JMF 从视频中提取图像 Player player Manager createRealizedPlayer cdi getLocator player start FrameGrabbingControl frameG
  • 在Java中,为什么某些变量首先需要初始化,而其他变量只需要声明?

    我试图更深入地理解我是否遗漏了一些关于 Java 何时需要变量初始化与简单声明的理解 在以下代码中 不需要为变量 row 赋值即可编译和运行 但变量 column 则需要赋值 注意 该程序没有任何用处 它已被修剪为仅显示此问题所需的内容 以
  • 仅当用户开始输入时清除 JavaFX TextField 中的提示文本

    默认行为是当字段获得焦点时 字段中的提示文本将被删除 那是标记在场上的时候 是否可以配置文本字段 以便仅在用户开始输入时删除提示文本 否则 我需要在每个文本字段旁边 上方添加一个标签 以描述其中的值 我知道它有点旧 但我自己也需要它 这仍然
  • Java GridBagConstraints gridx 和 gridy 不工作?

    我正在尝试使用gridx and gridy定位我的按钮的约束 但它们不起作用 如果我改变gridx and gridy变量 什么也没有发生 如果我将填充更改为GridBagConstraints to NONE 仍然不行 我在这里错过了什

随机推荐