问题标签 [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.
java - 休眠删除级联
我有一个实体 [项目],其中包含一组其他实体 [问题]。
我已经用“all-delete-orphan”的级联属性映射了关系。
在我的数据库中,关系映射到问题表上的 project_id (FK) 字段。此字段不能为空,因为我不想要没有项目的问题。
当我这样做时session.delete(project)
,它会抛出一个异常,说project_id
cant be null
,但是如果我删除not-null
对该字段的约束,则删除效果很好。
任何人都知道如何解决这个问题?
java - Hibernate Union 替代方案
使用休眠实现联合查询有哪些替代方法?我知道hibernate目前不支持联合查询,现在我看到的唯一方法是使用视图表。
另一种选择是使用普通的 jdbc,但这样我会丢失我所有的示例/条件查询好东西,以及休眠对表/列执行的休眠映射验证。
java - 为 O/RM 系统(休眠)实现长期历史模式的最佳实践?
我已经使用 Hibernate 将几个 java 类(如 Customer、Assessment、Rating 等)映射到数据库。现在我正在考虑对持久数据的所有更改的历史模式。该应用程序是一个 Web 应用程序。在删除(或编辑)数据的情况下,另一个用户应该有可能看到更改并撤消它。由于更改超出了当前会话的范围,因此我不知道如何以命令模式之类的方式解决此问题,建议将其用于撤消功能。
对于单值编辑,类似这个问题的方法听起来不错。但是删除整个持久实体呢?最简单的方法是在该客户是否被删除时在表中创建一个标志。最复杂的方法是为存储已删除实体的每个类创建一个表。中间有什么吗?我怎样才能将这两个东西舒适地集成到 O/RM 系统(在我的情况下是 Hibernate)中,而不用过多地使用 SQL(由于可移植性我想避免)并且仍然具有足够的灵活性?
有最佳实践吗?
java - 避免 Hibernate LazyInitializationExceptions 的策略
除了使用 OpenSessionInView 模式之外,还有其他方法可以避免 Hibernate Web 应用程序中的 LazyInitializationExceptions 吗?使用 OpenSessionInView 有什么缺点吗?
java - 如何使用 Hibernate @Any 相关的注解?
有人可以向我解释任何相关的注释(@Any
、@AnyMetaDef
和)在实践中是如何工作的@AnyMetaDefs
。@ManyToAny
我很难找到关于这些的任何有用的文档(仅 JavaDoc 不是很有帮助)。
到目前为止,我已经收集到它们以某种方式能够引用抽象类和扩展类。如果是这种情况,为什么没有@OneToAny
注释?这个“任何”是指一个“任何”还是多个“任何”?
一个简短、实用和说明性的例子将非常感激(不必编译)。
编辑:尽管我想接受答复作为答案并在适当的时候给予信用,但我发现 Smink 和 Sakana 的答案都提供了丰富的信息。因为我不能接受多个回复作为答案,所以很遗憾我将两者都标记为答案。
java - JPA 关系中列的自定义命名
当我使用 hibernate 与 JPA 建立关系时,会生成一些可怕的长且 ackward 的列名。
例如。我有以下内容actionPlan_actionPlanPK
,这意味着该列actionPlan
是指向的 FK actionPlanPK
。
为了使它在数据库中看起来更整洁一点,我希望我可以自己给它一个名称,最好只是它在拥有关系的实体类中的名称。
JPA可以做到这一点吗?
java - 非法尝试将集合与两个打开的会话相关联
我正在尝试将 pojo 添加到另一个 pojo 的集合中。我确定我在某个地方犯了一个非常愚蠢的错误,但我不知道如何解决它。
我有一个包含列列表的 pojo LookupTable:
在我的休眠配置中,我有:
在我的 Spring 配置文件中,我有:
最后是我的管理器类(com.foo.LookupTableManager)中所有失败的代码:
这里的变量lookupTableDao 是指一个简单的DAO 类,它扩展了HibernateDaoSupport。
我得到的错误是:
好的,我了解我收到的基本信息。但我不明白的是我在哪里获得第二次会议......有人可以帮助我吗?
我正在使用 Hibernate 3.2.6.ga、Spring 2.5.5 和 Tomcat 6.0
java - xdoclet vs xdoclet2?
我正在更新一个旧项目,并且我的 xdoclet 版本在解析 Hibernate (hibernate3) 标签时抱怨我的 Java 1.5 annontations (ArrayList data = ....)。
所以我的问题是这个...
是否有针对 Xdoclet 1.2.3 的修复程序,或者我应该转向 Xdoclet2 吗?
我已经开始移动一些代码,但是 xdoclet2 似乎没有为 hibenate 提供相同级别的配置,例如 excludetags。不过,我可能是错的。
大家怎么看?
杰夫·波特
java - 休眠:hbm2ddl.auto=生产中的更新?
在生产环境中运行配置hbm2ddl.auto=update
为更新数据库模式的 Hibernate 应用程序是否可以?
hibernate - 休眠:检查对象是否存在
假设类型A的对象存储在 DB 中。这是我使用休眠从数据库加载特定的方式:
如果 id=1 的对象不存在,我将得到ObjectNotFoundException。但是有没有办法检查这样的对象是否存在而不必捕获异常?我想要的是:
找不到它休眠文档...