问题标签 [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 回答
1464 浏览

java - Spring + Hibernate:如何拥有一个可配置的 PK 生成器?

我们将 Spring + Hibernate 用于 Web 应用程序。

此 Webapp 将部署在两个不相关的生产站点上。这两个生产站点将使用 Webapp 并行生成和使用 Person 数据。

我需要做的是确保在这两个不相关的生产站点上生成的 Persons 都有不同的 PK,以便我们可以随时合并来自这两个站点的 Person 数据。

对我施加的另一个限制是这些 PK 适合 a Long,所以我不能使用 UUID。

我想要做的是改变当前的休眠映射,它有序列S_PERSON作为生成器:

变成可配置的东西,以便根据部署站点的 Spring 配置文件PERSON_ID从不同的序列(可能S_PERSON_1和)生成其 PK。S_PERSON_2

当然,

不起作用,所以我必须弄清楚其他事情......我想我的生成器应该指向一个可配置的bean,而该bean又指向一个序列或另一个,但我不知道该怎么做......

有什么想法或解决方法吗?

谢谢!

0 投票
2 回答
10253 浏览

hibernate - 休眠:比较当前和以前的记录

我想将内存中 Hibernate 实体的当前值与数据库中的值进行比较:

CODEBLOCK#1中,我得到了newEntity.getProperty()="new value"AND oldEntity.getProperty()="new value"(当然,我期望oldEntity.getProperty()="old value"的是)。实际上这两个对象在内存中是完全一样的。

我搞砸了HibernateSessionFactory.getSession().evict(newEntity)并试图oldEntity=null摆脱它(我只需要它来进行比较):

现在这两个实体是不同的,但我当然会感到恐惧org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session

任何的想法?

编辑:我尝试了双会话策略;我修改了我HibernateSessionFactory以实现会话地图,然后......

我的单元测试在尝试打印 oldEntity 注释时挂起...... :-(

0 投票
3 回答
1466 浏览

hibernate - 用户类型加入休眠

在这种情况下,是否有可能让 hibernate 为某些“正确”的价值做“正确的事情”?

问题是 prop 是一个在连接表中具有不同表示形式的 UserType。在表 A 中,它表示为整数,在表 B 中,它表示为 char。因此 eq 测试转换为查看 1 == 'a' 或多或少,这是错误的,但由 1 或 'a' 表示的对象应该是相同的,因此它们应该比较为真。

0 投票
2 回答
569 浏览

java - 在哪里(哪一层)放置实体查询方法、“持久”方法等?

我有一个带有一些 JPA/Hibernate 实体的 SEAM 应用程序。我现在想知道将我的查询和持久性方法放在哪里。

默认选择似乎将它们放在注入的会话 bean 层中

但我想我宁愿拥有实体本身的方法。优点/缺点是什么?

  1. 可测试性?
  2. 好看吗?
  3. 表现?

是否有人从实体上的方法而不是会话 bean 中获得与 EntityManager 等交互的最佳实践的链接?

最好的,安德斯

0 投票
5 回答
5944 浏览

java - JPA/Hibernate 实体类和同步的最佳实践是什么?

我见过的大多数 JPA/Hibernate 实体 bean 类的示例似乎都没有显式同步。然而,可以在构建事务的上下文中调用这些对象的 getter/setter。并且有可能跨多个线程调用这些方法(尽管这可能是不寻常和奇怪的)。

似乎如果它是跨多个线程构建的,那么对对象状态的更改可能会丢失,这将是可悲的。

那么,省略同步是最佳实践吗?Hibernate 检测代码是否为我处理了正确的同步?

举个例子:

投掷星方法需要同步吗?我当然不希望我的忍者失去任何投掷的星星。

0 投票
5 回答
790 浏览

hibernate - 当应用程序使用持久层或存储库时,DBA 是否有角色?

我正在重新设计一对应用程序,它们在一种情况下使用Hibernate ,在第二种情况下使用Hibernate 和 Java Content Repository(特别是JackRabbit)的组合。

重新架构的一个关键问题是提高性能,所以我想知道为应用程序的设计和开发引入DBA是否有任何价值。

请注意,我并没有质疑让 DBA 参与管理生产数据库的价值。但在过去的项目中,必须让优秀的 DBA 参与设计和编码阶段,找出优化数据结构的方法,将代码放入存储过程等。

但鉴于数据库结构几乎完全由 Hibernate 和 JackRabbit 管理,因此优化它们的空间不大。当然,如果我们发现它们表现不佳,DBA 可能会发现问题,我们可以提交补丁来改进它们,但我不知道我们是否希望(或能够)在应用程序方面做很多事情——具体调优。

想知道 DBA 在这类应用程序中的角色的另一个原因是,我们的大部分性能问题很可能在持久层之上,即不是数据库、hibernate 或 JackRabbit 太慢,而是这样我们已经构建了我们的数据并推动它不是很好。解决这个问题将涉及数据建模,但实现媒介是 XML 文件和 Java 代码,而不是数据库表和 SQL。DBA 通常对这类事情了解很多吗?

使我无法完全排除在设计和开发基于持久层之上的应用程序时对 DBA 的需求的原因是怀疑。我不太相信通过使用预打包的解决方案可以完全消除对特定应用程序进行数据库优化的需求。

我错过了关键点吗?熟练的 DBA 是否可以调整休眠配置文件以使我的应用程序的特定用例变得异常快速?在没有 DBA 手动调整数据库本身、构建索引等的情况下考虑运行高负载 Hibernate 应用程序是不是很疯狂?或者开发领域中是否有专门优化基于 XML 的数据模型和抽象持久层的新生物?

0 投票
2 回答
1469 浏览

ajax - 如何将基于 Spring + Hibernate 的应用程序后端与基于纯 HTML 和 AJAX 的客户端连接?

我想通过 AJAX 调用我的 DAO 的方法。我对此很陌生,所以我想问一下最好的方法是什么。是否可以将我的 bean 发布为 Web 服务并使用例如 jQuery 调用它们?我认为这是不可能的 :) 我也读过 Direct Web Remoting 但我不知道该走哪条路……

如我所见,这里有很多有经验的人,所以我想你可以给我指路..提前谢谢

0 投票
5 回答
28777 浏览

java - ORA-00942: 表或视图不存在: 我如何找到它正在谈论的表或视图

在测试中,我们正在运行一个针对 ORACLE 10g 的 java/hibernate 应用程序。有时,我们会看到此错误:

ORA-00942: 表或视图不存在

有没有办法找出 ORACLE 正在谈论的表/视图?

我知道我可以在 hibernate 中添加额外的日志记录级别,这将显示它在 ORACLE 上执行的所有 SQL,然后运行该 SQL 以确定哪个 TABLE/VIEW 缺少或缺少权限。但鉴于它处于 TESTING/STAGING 中,这会降低性能。

有没有一种简单的方法来缩小表/视图名称的范围?

更新 :

如您所知,我无法控制 Oracle 数据库服务器环境。
我启用了 Hibernate 跟踪/日志记录并找到了一个有效的 SQL。我什至放了 Wireshark(它是一个 TCP 数据包过滤器)来查看 hibernate 实际发送的内容,这是一个有效的 SQL。那么,为什么甲骨文会偶尔抱怨它,而不是总是抱怨。

0 投票
22 回答
152973 浏览

java - JPA 和 Hibernate - 标准与 JPQL 或 HQL

使用CriteriaHQL的优缺点是什么?Criteria API 是在 Hibernate 中表达查询的一种很好的面向对象的方式,但有时 Criteria Queries 比 HQL 更难理解/构建。

您什么时候使用 Criteria,什么时候使用 HQL?在哪些用例中你更喜欢什么?还是只是口味问题?

0 投票
1 回答
6002 浏览

java - Hibernate @ManyToMany 映射与复合键

我正在尝试在 2 个表之间映射多对多关系,这两个表都具有复合主键

因此,在休眠模型映射 LSFOCTB 中,我尝试了:

在吸气剂之前。但它不起作用......尝试访问远程集合时的错误是:

是否已经设法为 ManyToMany 关系制作休眠映射?如果是这样,我的映射有什么问题?感谢您的帮助 !