问题内容: 在Spring Data JPA(+ Hibernate)应用程序中考虑以下类: 我最常见的用例涉及调用以下方法(从继承): 每当调用此方法时,Hibernate都会发出以下SQL查询: 每当执行此查询时,我只对类中的公共字段感兴趣,因此我发现左外部联接无用。 问题在于,在我们的实际应用程序中,每个子表中都有8个子类,例如和和以及数百万条记录,这导致父表上的查询运行非常慢。 在这种情况
问题内容: 有域对象: 有时,通过代码从列表中删除图片后,它会在图片列表中产生空项。 看起来,GORM不会更新关联表中的idx字段。我无法复制它,但是在生产服务器上却得到了几次 在我看来,这可能是二级缓存和一致修改的问题。怎么预防呢? Grails 2.4.5 MariaDB 问题答案: 我认为问题可能取决于您在类上设置的级联删除行为。首先,打电话后 你必须打电话。 但是,如果问题仍然存在,则可以
问题内容: 当我做 我看到两个查询被解雇了。一个用于获取人员数据,另一个用于人员详细数据。 根据我的理解,应该仅触发1个查询来获取人数据而不是人详细数据,因为我已经提到了延迟加载。为什么personDetail数据与person数据一起获取? 问题答案: Hibernate无法像代理关系中的Sets / Lists一样代理自己的对象,因此延迟加载不起作用。 我认为此链接可能有助于理解您的问题:ht
问题内容: 并(除其他事项外)这样做: 我得到提到的异常? 我需要手动调用session.save(person)吗?我必须在孩子的类定义中添加级联类型注释(它引用父类的地方)吗? 还是我错过了其他明显的东西? 我不想使用CascadeType.ALL,因为当删除父对象时,我想保留此人(孩子)。 两个实体/表都扩展了一个公共基表: 这会影响需要哪种级联类型? 问题答案: 您没有提到Hibernat
问题内容: 在我的一项工作中,我有以下代码: 这始终无法删除具有以下错误的实体: DELETE语句与REFERENCE约束“ FK966F0D9A66DB1E54”冲突。数据库“ TFADB”的表“ dbo.MonthlyReport_categories”的列“ MonthlyReport_id”中发生了冲突。 我如何指定映射,以便在删除报告时删除category集合中的元素? 问题答案: 级联
问题内容: 我遇到一种情况,我需要在ORM类层次结构中的对象上联接表,其中join列不是基类的主键。这是表格设计的示例: 这是映射(为简洁起见,省略了getter和setter方法 鉴于其连接列不是,我如何添加映射? 我尝试了以下方法: 这将失败,因为用于检索Bar对象的SQL试图从FOO表中获取BAR_ID值。我也尝试过将JoinTable注释替换为 这不会产生SQL错误,也不会检索任何数据,因
问题内容: 如果是这样,语法是什么? 假设我希望Foo的实例与Bar的所有实例都没有关联:在SQL中,它将简单地是: 在HQL中,我假设它会是这样的: (其中foos是Foo的映射集合) 但似乎是错误的,给出: 使用HQL甚至可能吗? 问题答案: 据我所知,要回答您的特定问题,不,HQL是不可能的。 我认为您在这里混用了SQL和HQL。在SQL中,您确实可以“删除”记录,当然,hibernate也
问题内容: 对于删除操作中级联的工作方式,我仍然不太清楚。我想知道如果我有这个会发生什么: 如果我删除具有此属性的myBean,我不确定链接的Cliente是否也会被删除(很奇怪),或者Cliente内部的集合将被更新,并且myBean的实例将被删除,然后保存。 会发生什么??Hibernato文档对此不太清楚… 问题答案: 这不是Hibernate,这是JPA 2.0标准的一部分。注释中有两个方
问题内容: 我想将2个使用hibernate注释的实体与一个自定义连接子句关联起来。该子句具有通常的FK / PK相等性,但FK为null时也是如此。在SQL中,这类似于: 从我阅读的内容中,我应该在所有者实体上使用@WhereJoinTable批注,但是我对如何指定此条件感到困惑……尤其是它的第一部分-指的是联接实体的ID。 有人有例子吗? 问题答案: 这是一个使用标准父/子范例的示例,我认为应
问题内容: 这是我的namedquery: @NamedQuery(name =“ User.findOneWithLists”,查询=“从用户u中选择u” +“左联接FEACH u.aTemplates” +“左联接FE.bTemplates” +“左联接FE.bp” +“左JOIN FETCH u.aCredentials“ +” LEFT JOIN FETCH u.st(st.deleted
问题内容: 我有两个具有双向@OneToOne映射的类。 我需要编写代码来检索B的所有实例,这些实例没有与之关联的A实例。我还需要为所有没有B的A编写类似的查询。 我努力了: 但这似乎总是返回null。有什么想法吗? 问题答案: 这对两个方向都应该起作用:
问题内容: 我对级联=“删除”的工作方式感到困惑。我在“城市”映射文件中以以下方式定义了映射: 类客户具有类城市的外键。 因此,当我运行时: 是否还应该删除所有客户端,还是必须以某种方式处理它?我是否将查询作为方法参数正确传递给会话的delete()方法?谢谢你的帮助。最好的问候,混蛋。 问题答案: 我对cascade =“ delete”的工作方式有些困惑(…) 级联操作意味着,如果您是父母,则
问题内容: 我想使用联接表在两个表之间建立一对多关系。 最后,我想使用Hibernate批注执行此操作。 我找到了一些使用xml映射执行此操作的示例,但没有带注释的示例。 我相信这就是需要创建表的方式 问题答案: 不要寻找例子。阅读官方文档: 另外,请注意,这是单向一对多关联的默认设置。因此,如果默认的表名和列名适合您,您甚至不必提供注释。
问题内容: 考虑以下两个关系: 连接表ATag没有相应的实体类。现在,我想获取所有名为Tag1的Tag的Foo实例,是否可以仅使用Criteria? 子查询可能会有所帮助,但是,我无法为不存在的类ATag.class创建DetachedCriteria。 问题答案: 只是处理这个确切的问题。您在表中而不是对象中思考。只是参考,让Hibernate负责其余的工作: 如果您看到SQL Hibernat
问题内容: 我正在使用Hibernate3.2,并使用条件来构建查询。我想为多对一关联添加和“排序依据”,但我不知道该怎么做。我猜,Hibernate查询最终看起来像这样: 我已经尝试过criteria.addOrder(“assnName.propertyName”),但是它不起作用。我知道可以为常规属性完成此操作。我想念什么吗? 问题答案: 好的,找到答案了。我尝试了一些我认为不可行的方法,但