问题标签 [bidirectional]
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.
c# - 双向多对一生成 SELECT N+1
我有两个用 NHibernate 映射的类:类 Application 引用类 Store 和属性 StoreId。应用程序用户有一个身份 ID,而类 Store 有一个分配的 ID,但我认为在这种情况下这并不重要。
应用用户映射:
商店映射:
当我加载所有 Store 时,会按预期为 ApplicationUser 生成一个左外连接,但是在构建对象图时 NHibernate 决定SELECT ... FROM ApplicationUser WHERE StoreId = ?
为每个不引用 ApplicationUser 的 Store 做一个额外的操作。
这是巨大的矫枉过正,完全没有必要,因为它应该已经知道那些 ApplicationUser 不存在。
任何人都知道如何阻止 NHibernate 生成这些额外的查询?
编辑:
类是非常基础的,像这样:
java - 如何防止双向关系中的循环
假设我们有以下两个实体。
图书馆
书
这是一种双向关系,很可能很快就会破裂。即使您将书籍添加到图书馆,该书籍的图书馆也不会更新。即使您更新图书的图书馆,图书馆也不会更新。
那么,您将如何以一种好的方式维持这种双向关系呢?我当然可以只做一个add
+反之亦然remove
,setLibrary
但据我所知,这会导致一个可能以StackOverflowError
.
java - 具有双向关联的类的 equals() 方法
我正在尝试在我的应用程序中实现equals
Java 类的方法Book
。有一组s,而 a有一个关联的。双向关联如下图所示:Chapter
Book
Chapter
Chapter
Book
现在我尝试equals
实现Chapter
:
在这里,我想知道是否还需要比较书籍领域。这不会开始无限循环吗?equals
实现这种双向关联的方法的正确方法是什么?
hibernate - 在hibernate中映射双向不对称关系:OneToOne-ManyToOne
我有一个实体,它引用了另一个实体,该实体代表某些属性的当前状态,从而使我能够跟踪所做更改的历史记录。为此,我定义了一个非对称的双向关系,OneToOne 负责持久性,并且两个实体都保持对另一个实体的引用,这样我就可以从一侧获得最新版本,而在另一侧获得实体的所有版本。这是我的映射:
在 A 实体中:
在 AVersion 实体中:
现在,这允许我通过 A 一步来坚持这一点,但是 AVersion 表中的每一行的“A_id”列都是空的,所以我将无法检索某个实体 A 的所有历史数据。 AVersion 表。知道为什么没有填写此列吗?
非常感谢!
PS 我曾尝试使用 Envers,但由于一些继承问题而无法使用。
sql - 具有双向自引用关联的类方法问题
我正在尝试创建一个应用程序,其中用户('current_user')对其他两个用户('user1'和'user2')之间的兼容性进行评分。他们可以对兼容性进行正面或负面评价:给两个用户评分“兼容”会创建两个相同类别的资源(一个“positive_connection”和一个“inverse_positive_connection” - 用于双向性),并且给他们评分“不兼容”也会创建两个资源('negative_connection '和'inverse_negative_connection')。所以有positive_connection、negative_connection和user的模型。
每个评级资源都属于创建它的用户,也属于它连接的用户。拥有正面和负面的评级很重要。
这是我的问题:在每个用户(@user
)页面上,我想显示单独的列表:
是
overall_positively_connected_to(@user)
(即positive_connections.count > negative_ratings.count
)的用户,并且是
overall_negatively_connected_to(@user)
(即negative_connections.count > positive_ratings.count
)的用户。
我似乎无法做的是编写一个类方法,只提取那些被网络评为“兼容”或“不兼容”的用户
通过阅读 Michael Hartl 的 rails 教程(我对这一切完全陌生),我认为我需要在 User 模型中编写类似这样的内容:
编辑
从完全不了解 SQL 查询开始,我编写了这两个类方法来查找与@user 负相关和正相关的用户(分别):
但这并没有多大帮助。我需要的是一种获取用户的方法overall_positively_connected_to(user)
。我认为该方法将涉及两个连接,并且是这样的:
但是在这里我完全卡住了:这显然是不对的。我在任何地方都找不到其他类似的例子......
任何关于这方面的帮助都会很棒,因为我对 SQL 查询一无所知。如果需要更多代码,请告诉我。提前致谢!
vba - 在excel中设置由visual basic创建的word文档中的语言、文本方向和对齐方式
我制作了一个 excel Visual Basic 脚本,该脚本从 Excel 表中获取数据,并在单词表中为每一行生成一个段落。文档的默认语言是希伯来语,文本右对齐,方向从右到左。对于段落中的一个(最后)行,我想将语言设置为英语、从左到右的方向以及右对齐。然后,将下一段的第一行改回希伯来语,方向从右到左,右对齐。当在段落的最后一行用 word 录制宏时,按 home,shift end,单击工具栏上的图标以根据需要更改语言、方向和对齐方式,我得到:
令我惊讶的一件事是,更改语言的记录就像我在使用键盘一样,而不是对象的属性,就像方向和对齐一样。如何将其翻译为 excel visual basic?当前通过使用以下方式添加了相关行:
谢谢,
恩斯特
java - 用Java为客户端/服务器端双向通信反馈系统构建服务器?
场景:用户登录客户端软件,与处理用户指定任务的服务器端实体(服务器)形成持久的双向连接。当服务器端实体在处理用户任务时遇到错误或需要用户进一步输入时,它会通知客户端软件,并等待客户端决定要做什么。客户端软件将采用新用户指定的输入并将其发送到服务器端。服务器端使用新用户指定的输入继续上次停止的位置。此反馈循环将持续到完成处理为止。逐步更新的用户输入将全部存储在服务器端,并可从客户端软件访问和修改。因此,如果客户端删除特定输入,该更改将立即反映在服务器端。
在客户端,我怀疑使用套接字连接到服务器......
现在对于服务器,我有点迷茫,因为似乎有许多不同的 Java 服务器,比如 Jetty 和 Netty。我也在练习谨慎,以免在这里尝试重新发明任何轮子。
构建服务器是正确的方法吗?还是构建一个可以按需完成特定任务的网络服务?
我也不只是在寻找一种万能的解决方案(可能是一厢情愿的想法),而是对我当前情况的任何见解持开放态度。
html - 样式化双向网站 CSS 最佳实践?
我正在开发一个由四种语言(阿拉伯语、英语、法语和西班牙语)组成的网站,(对于不知道阿拉伯语的人来说,阿拉伯语是一种从右到左的语言)。
基本上从左到右(en、es 和 fr)的站点将具有相同的布局/CSS。
为了处理不同的阿拉伯风格,我想知道两种方法:
1.特定语言/方向类:
将以下类添加到html
标记中,并使用一个简单的文件来处理它
- 阿拉伯
<html class="ar rtl" dir="rtl">
- 英语
<html class="en ltr">
- 法语
<html class="fr ltr">
- 西班牙语
<html class="sp ltr">
2.使用单独的文件:
在这种情况下,我会使用让我们说common.css
所有常见事物的文件,并加载单独的特定语言/方向文件(类似于arabic.css
or western.css
)
你认为最好的选择是什么?
谢谢
hibernate - Hibernate:双向一对多,以一对多为父
我正在尝试以“一个”作为父级建立双向一对多关系
我有一个家长:
和一个孩子:
我使用了来自官方 Hibernate文档(2.2.5.3.1.1) 的建议。但是,Hibernate 似乎不理解 CuePoint 是一个子实体,因此,当我删除 CuePoint 时,它也会删除 VideoOnDemand 以及所有其他 CuePoints。
我做错了什么,正确的方法是什么?