现有数据库上的 Hibernate 一对多单向

2023-12-10

你好 Stack Overflow 专家,我需要你的专业知识:

我正在尝试在现有数据库上使用 Hibernate。 目前我正在尝试加载一个 User 对象和一个 UserData 对象列表。

在数据库中(简化的)布局是

|    User      |      |          UserData               |
----------------      -----------------------------------
uid | username |      | uid | parentuid | field | value | 

因此,每个 User 对象都匹配所有 UserData 对象,其中 UserData.parentuid = User.uid。

我的用户类映射文件

    <class name="com.agetor.commons.security.User" table="ac_users">
    <id name="uid" column="uid" type="long" >
        <!--<generator class="native"/>-->
    </id>
    <property name="username" column="username" />   

    <list name="fieldData" cascade="all">
        <key column="parentuid" not-null="true" />
        <index column="parentuid" />
        <one-to-many class="com.agetor.commons.fields.FieldData"/>
    </list>

</class> 

Mu UserData 映射文件

    <class name="com.agetor.commons.fields.FieldData" table="ac_userdef_data">
    <id name="uid" column="uid" type="long" >
    <!--<generator class="native"/> -->
    </id>
    <!--<property name="parentuid" column="parentuid" />   -->
    <property name="fieldname" column="fieldname" />
    <property name="value" column="value" />
</class>

到目前为止,我已经尝试了许多不同的配置,但它们都出现了不同程度的失败。粘贴在这里的代码不起作用。

  • Parentuid 属性被注释掉,因为否则 Hibernate 会给出“映射中的重复列”错误。
  • 目前,uid 字段上仍然有一个“映射中的重复列”,我用于<list-index />
  • 我不明白我在哪里指定 UserData.parentuid 是外键并且列表应使用 User.uid 作为键。

我希望有人能够提供帮助。


当您同时定义一对多和多对一时,这不是使其成为双向的吗? 当前的工作模型是单向的,UserData 没有对 User 的引用。您的建议失败了,因为 Hibernate 无法在 UserData 上找到 User 的 get 或 set 方法。

是否暗示此代码使用 User.uid 作为键并将其与 UserData.parentuid 列进行匹配?或者这个事实是在其他地方指定的吗?

  <list name="fieldData" inverse="true">
    <key column="parentuid" not-null="true" />
    <one-to-many class="com.agetor.commons.fields.FieldData"/>
  </list>

我仍在学习 Hibernate,并通过我能找到的文档和示例进行工作。


试试这个(干代码):

<class name="com.agetor.commons.security.User" table="ac_users">
  <id name="uid" column="uid" type="long" >
    <!--<generator class="native"/>-->
  </id>
  <property name="username" column="username" />   

  <list name="fieldData" inverse="true">
    <key column="parentuid" not-null="true" />
    <one-to-many class="com.agetor.commons.fields.FieldData"/>
  </list>
</class>

<class name="com.agetor.commons.fields.FieldData" table="ac_userdef_data">
  <id name="uid" column="uid" type="long" >
    <!--<generator class="native"/> -->
  </id>
  <many-to-one name="user" class="com.agetor.commons.security.User" fetch="join">
     <column name="parentuid" not-null="true"/>
  </many-to-one>
  <property name="fieldname" column="fieldname" />
  <property name="value" column="value" />
</class>

如果它有效,请尝试添加我遗漏的索引和级联内容。

cheers,
mitch

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

现有数据库上的 Hibernate 一对多单向 的相关文章

  • Jpa 复合键可为空列

    我正在使用 Hibernate 的 JPA impl 来对一些表进行建模 我在映射表时遇到问题 没有主键 在 4 列上有唯一索引 其中 3 列可以为空 我尝试破解它并将索引定义为复合 Id 但由于某些列可为空 因此无法正常工作 JPA Hi
  • Spring Boot data-jpa 和 nativeQuery Postgres 转换

    我有一个习惯 Query在一个看起来像这样的存储库中 SELECT FROM topicaudit c14001 WHERE auditdate gt NOW AND auditdate lt NOW 1 hour INTERVAL AND
  • 为什么Aries在数据库管理恢复中要先执行redo before undo?

    如果 Aries 算法已经知道在分析阶段之后要撤消哪些事务 为什么它会在撤消之前应用重做 我知道 认为 这与 Lsn 数字和维护一致性有关 因为在磁盘上刷新的数据撤消事务可能与崩溃时撤消事务不同 由于脏数据 页 但我找不到这个问题的任何 正
  • 在 Python 中打开 Alteryx .yxdb 文件?

    有没有办法将 yxdb Alteryx 数据库文件 导入到 Pandas Python 中 而不使用 Alteryx 作为中间人 简短的回答是否定的 目前还不行 更长的答案 yxdb 支持的原始 C 是可以在 github 上找到 http
  • 高负载应用程序的数据库可扩展性?

    我见过一些应用程序拥有集群 Web 服务器 例如 10 到 20 个服务器 以具有可扩展性 可以在其中分发 在网络服务器之间加载 但我总是看到所有网络服务器都使用单个数据库 现在考虑任何电子商务或铁路 Web 应用程序 其中有数百万用户在任
  • 如何获取sql server 2005中数据库连接的详细列表?

    如何获取sql server 2005中数据库连接的详细列表 使用系统存储过程sp who2
  • Spring Hibernate中的@Transient方法调用

    我有一个 Pojo 类 在其中创建一个未与数据库表映射的字段 所以我必须声明字段Declaration和setter和getter方法 Transient 否则会显示错误 Transient private String docHistor
  • “已经有一个与此命令关联的打开的 DataReader,必须先将其关闭。”

    我正在开发需要连接到另一个数据库以获取一些数据的应用程序 为此 我决定使用 SqlConnection reader 等 我需要执行一些查询 例如首先我需要获取某个用户的卡 ID 之后我需要通过该卡 ID 获取一些数据 这是我的代码 reg
  • 节点 PostgreSQL 客户端查询超时

    我正在使用节点包pg对于 postgres here https github com brianc node postgres npm i pg var pg require pg 我正在查询一个不属于我的大型集群 在某些条件下可能会失败
  • 不想保留一对一的实体

    假设我有两节课Employee and Department In Employee我已经写了 OneToOne fetch FetchType EAGER cascade CascadeType ALL JoinColumn name d
  • JPA 乐观锁与同步 Java 方法

    使用 JPA 乐观锁定 我们可以通过 Version 字段控制数据库表是否已被另一个事务同时更新 从而允许在数据库中存储可靠的数据 如果一个Java应用程序只有一个CRUD服务负责数据库中的特定实体 我们也可以同步其方法并管理信息在数据库中
  • Google BigQuery 底层架构

    所以我大约 10 分钟前才开始摆弄 Google BigQuery 我想知道是否有人知道他们用来存储数据的底层架构 例如 这只是他们自己的下一代 BigTable 基础设施吗 另外 他们在索引 索引重建等方面使用什么样的策略是否清楚 我只是
  • 使用sqlbulkcopy之前如何创建表

    我有一个 DBF 文件 我正在尝试导入该文件 然后将其写入 SQL 表 我遇到的问题是 如果我使用 SqlBulkCopy 它需要我提前创建表 但在我的场景中这是不可能的 因为 dbf 文件不断变化 到目前为止 这是我的代码 public
  • 如何比较 Postgresql 中日期时间字段中的日期?

    在比较 postgresql Windows 中的版本 9 2 4 中的日期时 我遇到了一个奇怪的情况 我的表中有一列说update date与类型timestamp without timezone 客户可以仅使用日期搜索此字段 例如 2
  • Delphi XE5 FireDAC 错误:无法加载供应商库 [libmysql.dll 或 libmysqld.dll]

    我在 Windows 7 64 位上使用 Delphi XE5 只是尝试 FireDAC 组件 我正在使用一个 TFDConnection 组件连接到本地 MySQL 数据库 v5 6 15 我已经将 libmysql dll 32位 v5
  • FetchType.LAZY 不适用于休眠中的 @ManyToOne 映射

    简而言之 我的 Child 类与 Parent 类之间存在多对一的关系 我想加载所有的孩子 而不必加载他们的父母详细信息 我的孩子班级是 Entity public class Child implements Serializable I
  • mysql 中 INSERT 语句的计算列

    假设我想要一个表来记录其他表中的日期和列数 或者任何类型的数学 字符串连接等 CREATE TABLE log id INTEGER NOT NULL AUTO INCREMENT date DATETIME NOT NULL count
  • oracle lag 函数与 group by

    我有一个查询忽略从前一个值增加的值 例如 采用下表 col1 col2 col3 5 1 A 4 2 A 6 3 A 9 4 B 8 5 B 10 6 B 现在进行以下查询 select col1 from select col1 lag
  • 如何将变量设置为触发器 MYSQL 内存储过程的结果?

    我这里有一个小问题 我正在为我的数据库工作创建一个触发器 但我不知道如何在触发器内使用存储过程 我想将过程的结果保存在变量中 然后使用稍后在 IF 比较器上变量 这是我的代码 DELIMITER CREATE TRIGGER insert
  • JPA 实体中的枚举字段

    我觉得问这个问题有点愚蠢 但我找不到这个问题的任何简单答案 以这个简单的实体为例 Entity Table name clienti public class Cliente implements Serializable private

随机推荐

  • 使用 Apache POI 获取单元格颜色

    我正在尝试学习如何在一个小项目中使用 Apache POI 我想使用 Excel 通过使用颜色编码的单元格来创建 房间布局 并将数据加载到 Java 程序中 我认为了解如何访问单元格的颜色属性 但我要问的是 是否可以访问空白单元格的颜色 无
  • Windows 安装程序使用 NT AUTHORITY\SYSTEM 而不是登录用户

    我有一个 Windows 安装程序 它在安装过程中创建数据库 安装应用程序时CREATE DATABASE由于 Windows 安装程序使用了错误的用户 进程失败 它正在使用NT AUTHORITY SYSTEM而不是使用登录用户 NT A
  • 无法在主方法中调用方法

    我正在尝试在另一个方法中调用一个方法 例如在 C 中 如下所示 public class Exercise1 Scanner scanner new Scanner System in public int FirstNumber publ
  • 具有行中多个 TextView 的自定义 TableLayout

    我想创建带有这样的行的自定义表格布局 TV 用于 TextView 即我想向该行添加 11 个 TextView 每行都以标题开始 然后添加 5 对 TextView 以便表行与屏幕一样宽 这是我的代码 public class FlowT
  • C# 中的度量单位 - 几乎

    灵感来自F 中的测量单位 并且尽管断言 here 你无法在 C 中做到这一点 前几天我有一个想法 我一直在研究它 namespace UnitsOfMeasure public interface IUnit public static c
  • Laravel 从多维集合中压平和提取

    我必须检索一个数组id从给定的集合中 类似 10 54 61 21等 我试过了flatten pluck 但除了foreach这是我想在这一步删除的东西 Model class Children extends Eloquent publi
  • 子表单从多个父表单获取属性

    我可以从两个父母那里获得查询值吗 FrmMasterItem and FrmMasterPackage 对于一份表格 FrmItemSearch 包含一个 DataGridView 并将所选值传递给其父 Form 我已经尝试过FrmItem
  • 类中的 Thread.__init__(self) 如何工作?

    所以我找到了这段代码 from threading import Thread class Example Thread def init self Thread init self def run self print It s work
  • Nodejs ppa:Chris-lea/node.js 失败

    Given a nodejs makefile其中包含安装 nodejs npm 和一些 npm 包的命令 例如 nodejs sudo add apt repository y ppa chris lea node js install
  • C++标准核心语言规范中的注释和示例是否不规范?

    我经常在 SO 和其他地方 上看到这样的说法 C 标准中的注释和示例是not规范性 我自己可能已经多次提出过这样的说法 然而 我在 C 标准的核心语言规范中找不到这一事实的证据 目前我正在查看 C 14 的 n3979 工作草案 我能找到的
  • 重用套接字时出现套接字使用错误

    我正在用 c 编写一个 XMLRPC 客户端 旨在与 python XMLRPC 服务器通信 不幸的是 此时 python XMLRPC 服务器只能在一个连接上处理一个请求 然后它就会关闭 我发现了这一点 这要归功于 mhawke 对我之前
  • 如何在提交按钮上运行 php 代码而不刷新/重新加载页面

    我想在单击提交按钮时执行一些 php 代码 而不刷新 重新加载我的页面 是否可以 我在页面加载时也有 javascript 函数 这就是为什么我不想刷新我的页面 提前致谢
  • AsyncCassandraOperations 示例

    我正在阅读 AsyncCassandraOperations 来执行异步插入 以根据另一篇文章提高性能here 但我无法在谷歌或 spring 数据文档上找到很多帮助 以前 我使用 Cassandra Repository 进行所有数据提取
  • 动画系统警报类型视图

    是否可以为系统警报类型视图设置动画 如果是怎样 我尝试了这个但没有成功 public void onCreate Bundle savedInstanceState super onCreate savedInstanceState set
  • 使用 php 编码制作站点地图感到困惑

    我已经创建了一个CMS网站 现在我正在尝试用php编码制作站点地图 但是我制作的代码不完整 即它没有显示所有子菜单数据 请看这张图片 根据此图片 我在重量训练 健身练习的子菜单 下有许多其他子菜单 但它们不可见 为什么它们不可见 请指导 帮
  • 运行简单的 Selenium Runner 测试时出现“NoSuchSessionError:此驱动程序实例没有有效的会话 ID”

    我刚刚安装了最新版本的 Selenium Runner npm install g selenium side runner 在我的 Mac High Sierra 上 我正在运行节点 v14 1 0 我正在使用 Chrome 驱动程序 v
  • ChromeWebDriver - 未知错误:Chrome 无法启动:崩溃

    我正在尝试使用 ChromeWebDriver 在 Chrome 上测试我的应用程序 但每次尝试时都会遇到以下异常 org openqa selenium WebDriverException unknown error Chrome fa
  • 如何修复 str 的重新定义? [复制]

    这个问题在这里已经有答案了 在使用 Python 解释器进行实验时 我无意中分配了一个字符串str如下 str whatever 后来在同一次会议上 我发表了另一份声明 呼吁str say double whatever str 2 wha
  • 如何在for循环中读取图像后立即存储图像?

    我尝试了以下程序来读取多个图像 大约 300 张图像 现在我想在将这些图像按某个名称读取到某个位置后立即存储为g1 g2 g3 是否可以循环执行此操作 这是我的尝试 for i 1 5 m imread C Users shree Desk
  • 现有数据库上的 Hibernate 一对多单向

    你好 Stack Overflow 专家 我需要你的专业知识 我正在尝试在现有数据库上使用 Hibernate 目前我正在尝试加载一个 User 对象和一个 UserData 对象列表 在数据库中 简化的 布局是 User UserData