【问题标题】:Issue in Adding data into database using hibernate使用休眠将数据添加到数据库中的问题
【发布时间】:2011-02-06 21:34:30
【问题描述】:

将数据添加到数据库时出现以下异常:

org.hibernate.HibernateException: 数据库没有返回本地生成的标识值

我正在使用以下代码:

Session session = HibernateUtil.getSession();
Transaction tx = session.beginTransaction();

session.save(user);
logger.info("Successfully data insert in database");
tx.commit();
isSaved = true;

请让我知道出了什么问题。谢谢x

【问题讨论】:

  • 我们需要更多信息。您使用的是注解还是 XML 映射文件?我们能看到相关的映射吗?我们能看到相关的数据库架构吗?
  • 我正在使用 hbm
  • 用户 bean 有 userName 和 userCode,数据库有 user_name 和 user_code 作为列

标签: java hibernate


【解决方案1】:

似乎数据库不支持身份标识生成器。根据您的映射,您可能使用 userName 作为 ID 列,这意味着您可能希望将生成器类设置为 assigned,因为将手动选择用户名 (= id)(而不是由数据库自动生成):

<hibernate-mapping>
    <class name="com.test.User" table="user">
        <id name="userName" column="user_name">
            <generator class="assigned" />
        </id>
        <property name="userCode">
        <column name="user_code" />
        </property>
    </class>
</hibernate-mapping>

【讨论】:

    猜你喜欢
    • 2013-05-22
    • 2017-05-09
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多