问题内容: 我在持久层中存在多对多关联的问题。我的情况如下: 一个用户可以具有多个角色,并且一个角色可以具有与其连接的多个用户。在测试期间,我遇到了一个奇怪的行为。我创建了角色对象和几个用户对象。该角色已设置给每个用户。此后,使用DAO保存了用户。然后,加载一个用户,以检查他是否在保存用户对象之前获得了传递给他的角色。呼叫用户表明角色设置正确。 要检查反方向是否也起作用,可以使用角色DAO从数据库
问题内容: 我正在使用Hibernate 3.3.1,并正在对该示例表结构进行建模,但是在创建具有额外属性的联接表时遇到了麻烦。 是和表之间的多对多关系。联接表就是该表。我遵循这里提到的方法。 现在我有了实体 和 和 和 我使用Apache Derby进行测试,但是在生成的表结构上遇到了麻烦。 看来它已经创建了我所有的列作为主键。为什么会这样呢? 问题答案: 您可以使用实体的类作为IdClass的
问题内容: 我有两个表,乐队和投票。Band有一个名称和一个ID,Vote具有total_votes列和一个称为band_id的外键,它指向band.id。 我有很多票,保存在不同的日期。我想做的是找到每个频段的total_votes列的最大值。以下SQL查询有效: 不过,我正在使用的系统使用的是Hibernate。我想将该SQL查询重新编写为HQL或Hibernate条件查询。 这容易吗,我只是
问题内容: 在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”的工作方式有些困惑(…) 级联操作意味着,如果您是父母,则