问题标签 [hibernate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3094 浏览

hibernate - 使用会话中的另一个对象休眠 saveOrUpdate

如果已经有一个使用该标识符的对象加载到会话中,是否有任何方法可以使用 Hibernate 保存对象?

  • session.contains(obj)如果会话包含确切的对象,而不是具有相同 ID 的另一个对象,则Doing似乎只返回 true。
  • 如果对象是新的,则使用merge(obj)抛出异常
0 投票
2 回答
646 浏览

hibernate - weblogic中休眠的巨型NodeManagerLogs

我们的其中一个 weblogic 8.1 突然开始记录大量日志并填满磁盘。

给我们带来麻烦的日志位于

日志文件中的条目只是一次又一次重复的某种条目。像这样的东西

...

我在任何地方都找不到任何调试设置。我查看了托管服务器的远程启动类路径和参数。

谁能指出我控制这个日志文件的方向?

0 投票
3 回答
7903 浏览

java - 使用 Hibernate 处理文本文件

我在 Java 应用程序中使用Hibernate来访问我的数据库,它与 MS-SQL 和 MySQL 配合得很好。但是我必须在某些表格上显示的一些数据必须来自文本文件,我所说的文本文件是指人类可读文件,它们可以是 CSV、制表符分隔,甚至是键、值对,每行我的数据就是这么简单,但我当然更喜欢 XML 文件。

我的问题是:我可以使用 Hibernate 来使用 HQL、Query、EntityManager 和 Hibernate 为我提供访问文件的所有资源来读取这些文件。我应该使用哪种文件格式以及如何配置我的 persistence.xml 文件以将文件识别为表?

0 投票
2 回答
5253 浏览

java - java和hibernate的数据“安全”

我目前正在开发的系统需要一些基于角色的安全性,这在 Java EE 堆栈中得到了很好的满足。该系统旨在成为业务领域专家在其上编写代码的框架。

但是,对数据也有要求security。也就是说,最终用户可以看到哪些信息。

这实际上意味着减少对数据库中行(甚至可能是列)的可见性。

我们使用 Hibernate 来实现持久性。但是,我们使用自己的注释,以免将我们的持久性选择暴露给业务领域专家。

对于基于行的安全性,这意味着我们可以添加一个注释,例如@Secured在实体级别,这会导致在基础表中添加一个额外的列来限制我们的选择?

对于基于列的安全性,我们可能不得不@Secured协助查询生成,或者可能使用方面来过滤返回的信息?

我很想知道这也会如何影响hibernate的缓存机制?

我相信很多其他人都会遇到同样的问题,我想知道你是如何解决这个问题的?

非常感激...

0 投票
6 回答
28673 浏览

java - 为什么@OneToMany 不适用于 Hibernate 中的继承

我认为很清楚我要做什么。我希望 @ManyToOne 人被 UglyProblem 类继承。但是会有一个例外说:“在 UglyProblem 类中没有找到这样的属性 (mappedBy="person")”。

我发现的只有这个。我找不到 Emmanuel Bernard 的帖子,解释了这背后的原因。


不幸的是,根据 Hibernate 文档“未映射为 @MappedSuperclass 的超类的属性将被忽略。”

那么我认为这意味着如果我有这两个类:

那么字段foo将不会映射到 B 类。这是有道理的。但如果我有这样的事情:

我希望 UglyProblem 类有文件idname并且两个类都使用同一个表进行映射。(事实上​​,这正是发生的事情,我刚刚再次检查)。我有这张桌子:

回到我的问题:

我希望 @ManyToOne 人被 UglyProblem 类继承。

我希望这是因为所有其他映射字段都是继承的,并且我认为没有任何理由为 ManyToOne 关系设置此例外。


是的,我看到了。事实上,我在我的案例中使用了只读解决方案。但我的问题是“为什么……” :)。我知道hibernate团队的成员给出了解释。我找不到它,这就是我问的原因。

我想找出这个设计决策的动机。

(如果你对我如何面对这个问题感兴趣:我继承了一个使用 hibernate 3 构建的项目。它是 Jboss 4.0。一些东西 + hibernate 已经存在(你可以一起下载)。我正在将此项目移动到 Jboss 4.2。 2,我发现有“@OneToMany mappedBy”的继承映射,它在旧设置上运行良好......)

0 投票
4 回答
12067 浏览

java - 如何在运行两个 Java 应用程序时保持 Hibernate 缓存一致性?

我们的设计有一个 jvm,它是一个 jboss/webapp(读/写),用于通过休眠(使用 jpa)将数据维护到数据库。该模型有 10-15 个持久类,关系深度为 3-5 级。

然后我们有一个单独的 jvm,它是使用这些数据的服务器。由于它连续运行,我们只有一个长的数据库会话(只读)。

当前不涉及 jvm 内缓存 - 因此我们手动从另一个 jvm 发出信号。

现在,当 webapp 更改某些数据时,它会向服务器发出信号以重新加载更改的数据。我们发现我们需要告诉 hibernate 清除数据然后重新加载它。仅对数据库进行获取/合并并不能完成这项工作 - 主要是针对层次结构下几层的对象。

关于此设计是否存在根本性错误的任何想法,或者是否有人正在这样做并且在重新加载时使用 hibernate 有更好的运气。

谢谢,克里斯

0 投票
2 回答
2080 浏览

hibernate - 在 Hibernate 的 Criteria API 中查询值类型的集合

在我的数据库中,我有一个实体表(我们称之为实体)。每个实体可以有多个实体类型,实体类型的集合是静态的。因此,存在一个连接表,其中包含实体 id 和实体类型名称的行。在我的代码中,EntityType 是一个枚举,Entity 是一个 Hibernate 映射的类。
在实体代码中,映射如下所示:

哦,我有没有提到我正在使用注释?
现在,我想做的是为特定实体类型的所有实体对象创建一个 HQL 查询或搜索。

Hibernate 论坛中的这个页面说这是不可能的,但是这个页面是 18 个月大的。谁能告诉我此功能是否已在 Hibernate 的最新版本之一中实现,或计划在即将发布的版本中实现?

0 投票
6 回答
3156 浏览

c# - (N)Hibernate - 是否可以将多个表动态映射到一个类

我有这样的情况,我使用 GIS 软件,它将有关 GIS 对象的信息存储到每个类型/类别的 GIS 对象(道路、河流、建筑物、海洋……)的单独数据库表中,并保留它存储的元数据表有关类名及其 DB 表的信息。

这些不同类的GIS 对象共享一些参数,即Description 和ID。我想用一个通用的 C# 类(我们称之为 GisObject)来表示所有这些不同的 GIS 类,这足以满足我需要从应用程序的非 GIS 部分执行的操作,该应用程序列出了给定 GIS 的 GIS 对象班级。

对我来说,问题是如何使用 NHibernate 映射这些对象,以便在创建 C# GisObject 以接收和使用表名作为将从元表中读取的参数时向 NHibernate 解释(它可以分两个步骤,我可以在第一步中手动获取表名,然后在拉取 GisObject 数据时将其传递给 NHibernate)。

有没有人处理过这种情况,可以做到吗?

0 投票
2 回答
1132 浏览

java - 休眠作物的clob值奇怪

我在两个表之间有一对多的关系。many 表包含一个 clob 列。在 hibernate 中,clob 列如下所示:

所以基本上我可能有一个带有一些替代品的注释,比如"foo"and "fizzbuzz"。因此,在我的主表中,我可以有一个 id 为 4 的便笺,而在我的主表中,我NOTE_JOIN_TABLE会有两行,"foo"并且"fizzbuzz"都与便笺有关系。

但是,当其中一个插入数据库时​​,较大的替换值将被裁剪为与最短的一样长。所以在这种情况下,我会在数据库中使用"foo"and"fiz"而不是"foo"and "fizzbuzz"

你知道为什么会这样吗?我已经检查并确认它们没有在我们的代码中的任何地方被裁剪,它肯定是休眠的。

0 投票
3 回答
3109 浏览

java - 休眠以记录 clob 参数

(请参阅此处了解我要解决的问题)

你如何让休眠记录它要插入的 clob 值。它正在记录其他值类型,例如 Integer 等。

我的 log4j 配置中有以下内容:

产生如下输出:

但是你会注意到它从不显示parameter: 3哪个是我们的 clob。

我真正想要的是:

如何让它在日志中显示?