数据类型不一致:预期的 NUMBER 变为 BINARY

2024-03-27

我是 Hibernate 新手,我正在尝试对我创建的 Oracle 数据库进行“简单”用户插入。

我使用 Netbeans Hibernate 向导创建了所有必需的文件: hibernate.cfg.xml,hibernate,reveng.xml,Users.hbm.xml,Users.java

如果我使用oracle sql开发人员插入用户,我可以从java代码中获取该用户。但是,如果我尝试插入用户,则会收到错误:不一致的数据类型:预期的数字变为二进制。

部分Users.hbm.xml:

<hibernate-mapping>
  <class name="HibernateDB.Users" schema="SYSTEM" table="USERS">
    <id name="userid" type="int">
      <column name="USERID" precision="9" scale="0"/>
      <generator class="increment"/>
    </id>
    ...

部分用户.java:

public class Users implements java.io.Serializable
{

    private int userid;
    private String username;
    private String password;
    private String firstName;
    private String lastName;
    private Serializable dateOfBirth;
    private Serializable registrationDate;
    ...

部分insertUser方法(所有参数都是字符串):

    session = HibernateUtil.currentSession();
    Transaction tx = session.beginTransaction();
    Calendar dOfBirth = Calendar.getInstance();
    dOfBirth.set(Integer.parseInt(year_of_birth), Integer.parseInt(month_of_birth), Integer.parseInt(day_of_birth));
    Calendar regDate = Calendar.getInstance();
    Timestamp dOfBirthTS = new Timestamp(dOfBirth.getTimeInMillis());
    Timestamp regDateTS = new Timestamp(regDate.getTimeInMillis());
    Users user = new Users();
    user.setUsername(username);
    user.setPassword(password);
    user.setFirstName(first_name);
    user.setLastName(last_name);
    user.setDateOfBirth(dOfBirthTS);
    user.setRegistrationDate(regDateTS);
    session.saveOrUpdate(user);
    ans = user.getUserid();
    tx.commit();

数据库中的用户表:

USERID NUMBER(9,0) - the primary key
USERNAME VARCHAR(200)
PASSWORD VARCHAR(200)
FIRST_NAME VARCAHR(200)
LAST_NAME VARCHAR(200)
DATE_OF_BIRTH TIMESTAMP
REGISTRATION_DATE TIMESTAMP

我找到了真正的问题,因此我可以解决它!

真正的问题:表有 TIMESTAMP 字段,hibernate 将它们生成为可序列化,这会产生错误,因为可序列化不是时间戳。

修复:我已将映射规则添加到 hibernate.reveng.xml:

<hibernate-reverse-engineering>
  <schema-selection match-schema="SYSTEM"/>
    <type-mapping> 
        <sql-type jdbc-type="OTHER" hibernate-type="java.util.Calendar" /> 
    </type-mapping>
    ...

它也适用于日期类型,而不仅仅是日历(也许还有更多我没有尝试过的类型)。

结论:不应该依赖自动生成机制。

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

数据类型不一致:预期的 NUMBER 变为 BINARY 的相关文章

  • Spring中需要多个相同类型的bean

    将其标记为重复之前的请求 我浏览了论坛 但在任何地方都找不到该问题的解决方案 我正在使用 Spring 3 2 编写代码 一切都是纯粹基于注释的 该代码接收从不同 XSD 文件派生的 XML 文件 所以我们可以说 有五个不同的 XSD A1
  • 关于线程的停止

    我开发了一个代码 它将在执行时启动两个线程 public class MyThread1 extends Thread extend thread class public synchronized void run synchronize
  • Java,ASM:如何从ASM InsnNode获取操作码名称和TagValue?

    我正在研究一些类文件分析 并且正在研究使用 ASM 来读取类 在 Javap 中 操作码以及 tagName 和 tagValue 是内联打印的 但在每个 AbstractInsnNode 中 我只看到 int 的字段 而不是 tagVal
  • 通过 jdbc 执行存储过程时获取网关超时

    我正在使用 struts2 框架 它基本上是这样的 ActionClass execute call function in business class which returns an object and store this obj
  • mapFragment.getMapAsync 处的 NullPointerException

    在解决了与我的标题相关的问题后 我找不到问题的解决方案 我有一个NullPointerException at mapFragment getMapAsync 下面是我的MapActivity code package com exampl
  • Android Studio 1.0.1 APK META-INF/DEPENDENCIES 中复制的重复文件

    我安装了 Android Studio 版本 1 0 1 并尝试将我的项目从 eclipse 导入到它 它给了我以下错误 Error Execution failed for task app packageDebug Duplicate
  • Android文件上传器与服务器端php

    我几个小时以来一直在寻找解决方案 但找不到任何解决方案 基本上 我想从我的 Android 设备上传文件到 http 网站 但是 我不知道如何做到这一点 我在设备上使用java 并且我想在服务器端使用PHP 我只想上传文件 而不是在服务器上
  • ORA 00904 错误:无效的标识符

    我已经在虚拟 XP 中安装了 Oracle 10g 并使用以下命令创建了一个表 create table reg1 fname varchar2 30 lname varchar2 30 addr varchar2 30 mail varc
  • Java HashSet 具有自定义相等标准? [复制]

    这个问题在这里已经有答案了 我一直在寻找类似于 Java TreeSet 在实例化时接收自定义比较器的能力 因此我不需要使用对象的默认相等 和哈希码 标准 我能想到的最接近的方法是将我的对象包装在一个私有的自定义类中 但这看起来很老套 这最
  • GSON 预期为 BEGIN_ARRAY,但实际为 BEGIN_OBJECT

    当我仅收到列表中的一项时 我收到此错误 我在服务器端 REST Web 服务中使用 Jersey 只有当列表返回一个元素并且它具有0 elements I get java lang NullPointerException但是当它有多个时
  • 如何使用 JAVA 将本地图像而不是 URL 发送到 Microsoft Cognitive Face API

    我正在尝试使用 Microsoft 认知服务的 Face API 我想知道如何通过 Rest API 调用将本地图像发送到 Face API 并使用它请求结果JAVA 有人可以帮我解决这个问题吗 Microsoft 在其网站上提供的测试选项
  • 光线追踪三角形

    我正在用java编写一个光线追踪器 并且我能够追踪球体 但我相信我追踪三角形的方式有问题 据我了解 这是基本算法 首先确定射线是否与plane三角形已打开 剪裁所有点 使它们与三角形位于同一平面上 因此xy以平面为例 根据沿着新平面向任意方
  • 如何获取eclipse中的工作空间路径? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在研究PDE Eclipse Plugin Project 我需要获取工作区路径 我的文本小部件 swt 应该设置为当前工作空间路径 如
  • 在 Spring 中以编程方式解析 AliasFor 注释值

    我有一个注释 Target ElementType TYPE Retention RetentionPolicy RUNTIME public interface A Class value 这是在课堂上使用的 B D class publ
  • Java - 全局、可重用的加载对话框

    我正在尝试实现一个全局加载对话框 我想调用一些静态函数来显示对话框和一些静态函数来关闭它 与此同时 我正在主线程或子线程中做一些工作 我尝试以下操作 但对话框没有更新 最后一次 在再次隐藏之前 它会更新 private static Run
  • Hibernate Query在系统中运行缓慢,但直接运行时速度很快

    我遇到了与本周播客中类似的问题 我们有一个使用 Hibernate 和 Sql Server 2005 的 Java 应用程序 Hibernate 正在为我们生成一个查询 该查询需要近 20 分钟才能完成 如果我们使用 show sql 进
  • Java 8 中接口和抽象类之间的根本区别[重复]

    这个问题在这里已经有答案了 考虑到接口现在可以为其提供的方法提供实现 我无法正确合理地解释接口和抽象类之间的差异 有谁知道如何正确解释其中的差异 我还被告知 从性能角度来看 接口比抽象类更轻量 有人可以证实这一点吗 接口仍然不能有任何状态
  • Java 压缩字符串

    我需要创建一个接收字符串并返回字符串的方法 防爆输入 AAABBBCCC 防爆输出 3A4B2C 好吧 这很尴尬 我在今天的面试中无法做到这一点 我正在申请初级职位 现在 我在家尝试制作一些静态工作的东西 我的意思是 不使用循环有点无用 但
  • Oracle:SQL查询查找属于表的所有触发器?

    我怎样才能找到属于一个表的所有触发器 以下内容将独立于您的数据库权限而工作 select from all triggers where table name YOUR TABLE 以下备用选项可能有效也可能无效 具体取决于您分配的数据库权
  • 如何将钱兑换成零钱

    尝试将输入的数字转换为 25 美分 50 美分 10 美分和 10 分 有几个问题 public class Coins public static void main String args private int quarters di

随机推荐

  • System.Net.WebException:错误:在单声道 Android 应用程序中调用 WCF 服务抛出异常时 NameResolutionFailure

    我正在开发 Mono Android 移动应用程序 我在应用程序中调用 WCF 服务 我使用项目菜单的 gt Add WebRefernce 选项添加了 WCF 服务 我的问题是当我在设备上运行调用 wcf 服务时遇到异常 例外 为您的应用
  • Android“vspace”内存?

    我想更多地了解 vspace 内存到底是什么 在为 Android 游戏加载库时 经常会出现虚拟空间内存不足的情况 因为我们倾向于在应用程序启动时占用尽可能多的内存 我一直无法找到任何有关它的信息 这是我收到的错误消息 11 11 16 0
  • 使 ruby​​ gems 响应终端命令

    我对红宝石和宝石制作非常陌生 我制作了一个简单的 gem 它根据输入抓取一些信息 但是 要使用我的 gem 我需要进入解释器 irb 并需要我的 gem 然后使用一些参数调用该方法 假设宝石被称为foo 假设该方法被调用print webs
  • 错误 StatusLogger Log4j2 找不到日志记录实现

    我正在尝试实施log4j 2但它不断抛出以下错误 gt ERROR StatusLogger Log4j2 could not find a logging implementation gt Please add log4j core t
  • 浮动操作按钮导致错误和应用程序崩溃

    使用浮动操作按钮时 我的 Android 应用程序崩溃并抛出错误 当我删除它时 我的应用程序成功运行 但如果可以的话 我宁愿使用浮动操作按钮 这是我完整的错误日志 java lang RuntimeException Unable to s
  • Python - 如何检查文件是否被另一个应用程序使用?

    我想打开一个由另一个应用程序定期写入的文件 该应用程序无法修改 因此 我只想在知道该文件未被其他应用程序写入时才打开该文件 有没有Pythonic的方法来做到这一点 否则 我如何在 Unix 和 Windows 中实现这一点 edit 我会
  • 从头开始为 JRE 创建 Docker 映像

    我正在尝试使用 JRE 创建映像而不使用任何操作系统 我尝试了这个 Dockerfile 但不起作用 FROM openjdk 11 0 1 jdk oraclelinux7 as JDK RUN jlink no header files
  • 如何为动态搜索字符串创建索引

    我有一点数据库 仅用于学术目的 我最多有对象表 我在 Power Designer 中创建了一个实体关系模型 ERM 并且该程序默认为每个表的序列 ID 创建索引 我想知道如何使用索引 就像在查询中那样 说我会 想要通过 id 查找产品 但
  • 64 位环境中引用的大小

    在浏览 SO 上另一个问题的答复时遇到了这个 引用与变量获取 https stackoverflow com questions 3744635 c is it a good idea to always return references
  • iOS 10 中的 AVSpeechSynthesizer 错误

    我目前正在使用创建一个文本转语音应用程序AVSpeechSynthesizer 在 iOS 9 中运行正常 但在 iOS 10 中出现以下错误 无法获取属性 LocalURL 错误域 MobileAssetError Code 1 无法复制
  • Escape(\) 字符背后的魔力是什么

    C C 编译器如何操作源代码中的转义字符 编译器语法是如何编写来处理该字符的 编译器遇到该字符后会做什么 大多数编译器分为几个部分 编译器前端称为词法分析器 http en wikipedia org wiki Lexical analyz
  • 在 jdk 11 中运行 Doclet 的 com.sun.tools.javadoc.Main.execute 的替代方案是什么?

    我在 Apache netbeans 10 上使用 JDK 11 The main该方法自 java 9 起已被弃用 并标记为删除 如果没有 选择 https docs oracle com en java javase 11 docs a
  • 如何对 SQL 存储过程的 col 结果求和[重复]

    这个问题在这里已经有答案了 我有一个存储过程 其结果如下 Governors AUTO 07313570121 1 3 69 2 01 2 01 1 68 83 58 Governors AUTO 07319354850 1 2 79 1
  • 如何根据风格更改 Flutter 应用程序名称?

    我有 Flutter 应用程序的开发和生产风格 问题是开发和生产应用程序的标签和启动器是相同的 因此看不到差异 实际上不能同时在设备上安装两者 根据风格更改 Flutter 应用程序名称的简单方法是什么 我知道可以通过修改 AndroidM
  • 需要使用油脂猴脚本点击出价按钮

    我有点卡住了 我正在尝试创建一个油脂猴脚本 该脚本将自动单击拍卖网站上出现的弹出窗口 我有 Xpat 但我对 GM 的经验太丰富 无法让它发挥作用 这是我从 fire finder for firebug 获得的元素检查线
  • Sublime Text 中的边界敏感 Cmd+D

    我在 OSX 上使用 Sublime Text 3 Using cmd D I want to select the next instance of es but not if it s part of another word 鉴于此代
  • 如何从 Google App Engine for Java 调用 Google App 脚本

    我有一个谷歌应用程序脚本 我想从 Google App Engine for Java 调用它 有人可以指导如何调用这样的脚本吗 我试着用谷歌搜索这个 但只找到了很多关于如何进行相反操作的信息 请指教 6个月前我也有同样的问题 我可以使用脚
  • 缩短本地 jekyll 服务器的页面生成时间

    跑步时jekyll server 整个站点被重建 在足够大的站点上 这需要非常长的时间 即使与 auto标志 这应该会阻止整个站点重新生成 但完成时间相当长 对我来说 10 多秒 据报道对某些人来说需要几分钟 这在编辑和预览单个页面时很不方
  • NDK:libm 静态链接

    我在尝试使用最新的 android 9 x86 平台编译源代码时遇到问题 主要问题 为什么是静态库libm a和动态的libm so是不同的 问题是我尝试编译 path to android ndk r8 toolchains x86 4
  • 数据类型不一致:预期的 NUMBER 变为 BINARY

    我是 Hibernate 新手 我正在尝试对我创建的 Oracle 数据库进行 简单 用户插入 我使用 Netbeans Hibernate 向导创建了所有必需的文件 hibernate cfg xml hibernate reveng x