问题标签 [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++ - 如何为双向迭代器定义 operator<?
如何为双向迭代器定义 operator<?(列表::迭代器)
(我想使用列表而不是向量。)
java - 有没有办法使用 Guava 的 HashBiMap 进行驱逐?
我正在使用企业级 Java 后端应用程序,我需要构建基于令牌的用户身份验证。前端使用 PHP 并通过 SOAP 与 Java 后端进行通信。
我考虑过使用 Guava 的 HashBiMap 来帮助我解决问题。这对我很有用,因为我可以生成 UUID 令牌作为键并将用户对象作为值存储在静态 HashBiMap 中。当用户首次成功登录时,该用户将被添加到 HashBiMap 中,登录响应将返回生成的 UUID 令牌。对同一用户的后续 SOAP 请求将仅使用令牌进行。
我现在面临的问题是我需要某种驱逐逻辑,允许这些令牌在 30 分钟不活动后被驱逐。在我的研究中,HashBiMap似乎并不像 Guava 的MapMaker那样本身支持驱逐。
有没有人对我如何使用 HashBiMap 并支持驱逐不活动有任何建议?如果这种方法不理想,我对其他策略持开放态度。
更新:
我想我需要使用 HashBiMap 因为我希望能够在地图中查找用户对象并在用户仍在地图中时获取他们已经存在的令牌。例如,如果用户在 30 分钟窗口内关闭浏览器,几分钟后返回并重新登录,我需要检查用户是否已经存在于地图中,以便我可以返回他们现有的令牌(因为它技术上仍然有效)。
ruby - Ruby中的双向哈希表
我需要一个 Ruby 中的双向哈希表。例如:
方法rfetch
意味着反向获取,只是我的建议。
注意三点:
- 如果多个键映射到相同的值,则
rfetch
返回所有键,并打包在数组中。 - 如果 value 是一个数组,则
rfetch
在数组的元素中查找它的参数。 - 双向哈希意味着两者都
fetch
应该rfetch
在恒定时间内执行。
Ruby(包括外部库)中是否存在这种结构?
我考虑过在修改其中一个时使用两个同步的单向哈希来实现它(并将其打包到类中以避免同步问题),但也许我可以使用已经存在的解决方案?
rmi - 没有 2 个 RMI 服务器的 RMI 双向通信
我之前在许多项目中成功使用过 RMI(在 Java 6 中),其中有明确定义的客户端/服务器关系。当我在以前的项目中使用它时,我创建了一个定义明确的接口 JAR,它部署到客户端和服务器,并使用“-Djava.rmi.server.codebase=... -Djava”启动 RMI 服务器.rmi.server.hostname=localhost -Djava.security.policy=...\server.policy"
我现在正在尝试使用 RMI 执行双向通信,以构建基本集群。具体来说,我希望 B(工人“客户端”)向 A(中央“服务器”)注册。但是,我希望 B 实现 java.rmi.Remote 接口并将自己的引用传回给 A。这样做的主要动机是: * A 不需要知道 B 的所有实例驻留在哪里(它们可以是互联网上的任何地方,如果需要的话!) * 一旦 B 的实例向 A 注册,那么 A 就可以控制 B(即,按照 A 的决定在 B 上执行任务)。
我的问题是,每当我尝试将此远程接口 (B) 作为参数传递回 A 时,我会在 B 上收到以下异常(但如果我传递 null,远程调用将成功发生,这使得这种解释不太可能:http ://download.oracle.com/javase/1.4.2/docs/guide/rmi/codebase.html#section6):
其中:* A(实现)= com.mycompany.server.dao.ServerInterfaceImpl * B = com.mycompany.worker.MyWorker
(Q1) 是否可以按照我的描述进行操作?有人能写出我所描述的超基本版本吗(即客户端 B 向服务器 A 注册,然后将对 B 的远程接口的引用传递给 A,以便 A 可以控制 B)?我最初以为我有一些模糊的错字/配置问题,但我开始这个任务是不可能的......
(Q2)如果我想要做的事情是不可能的,另一个想法是将B的每个实例变成一个RMI Server,并在B连接到A之后让A连接到B。我不想要的主要原因要做到这一点,我希望 A 和(每个实例)B 将被互联网分开,并且只有 A 会有一个公共互联网地址(每个 B 实例都没有公共 IP 地址,并且可能被困在各种防火墙,这样 B 连接到 A 比反之更容易)... 归根结底,一旦 B 连接到 A,我只想促进双向通信!
(Q3)我正在考虑在 A 和 B 之间进行心跳。一种可能性是使用每个 B 的这些心跳来轮询 A 任何出色的工作......我更希望 A 异步控制 B,但是......
terminology - 两个单向连接是一个双向的吗?
我刚刚讨论了两种类型的“连接”。假设我们有一个服务器和一个客户端。如果两者都是服务器和客户端,这是双向的吗?
我的印象是两个单向连接与一个双向连接有些不同,因为它们不使用相同的会话/相同的电缆/相同的任何东西。
你会说什么,有没有更一般的方式来描述有/没有这样的区别?
PS:搜索刚刚出现了数据库讨论。
PPS:不知何故,单向不能用作标签,有足够声誉的人可以创建它吗?
java - 从双方更新双向ManyToMany
参考问题保存双向多对多我想准确地获得什么被接受的答案解释为不正确:
如果可以保持此状态,您将在连接表中得到以下条目:
但是在加载时,JPA 怎么知道您打算只让 b 知道 a2 而不是 a1 ?那不应该知道 b 的 a2 呢?
在我的情况下,b 在每种情况下都知道 a1 和 a2 是正确的。
想想父子关系:
- b 是 a1 的父级并且 a1 是 b 的子级(自然)
对我来说,只定义一个方向是错误的:
- b 是 a1 的父级,而不是 a1 是 b 的子级 (???)
要获得公认的答案,我认为我需要两个连接表:
我错了吗??
- 但是,如何获得“同步”的双向关系(不仅仅是多对多)?
- 标准 JPA 功能是否可行?
- 否则,是否有任何特定的提供者实现?
我认为实施
是一个非常丑陋的黑客......
并且在两侧使用两个单向 OneToMany 在 EclipseLink 2.2.0 中不起作用(不太确定,我目前正在尝试)
谢谢 :)
hibernate - 用于 OneToMany 双向映射的 Hibernate 和 H2“参照完整性约束违规”
所以我有两个简单的豆子——FatKid 和汉堡包。现在,由于我不知道的原因,我不仅需要查找某人吃的所有汉堡包,还需要查找谁吃了哪个特定的汉堡包。上代码!
FatKid.java
汉堡包.java
休眠.cfg.xml
依赖关系
客户
所以当我运行代码时,我最终得到了输出(和截断的堆栈跟踪)
所以第一个汉堡包被保存了,但它在第二个汉堡包上爆炸了。两者都应该能够使用 FatKid 的 id 作为他们的外键,但它似乎不起作用。任何见解将不胜感激。
谢谢,凯文
hibernate - 子类和超类之间的双向 OneToMany 关联不起作用(JPA with Hibernate 3.6.7)
我有两个班级,员工和经理。Manager 扩展了 Employee,因为它是一种员工。Employee 有一个 Manager 的实例,它代表一个员工有一个经理的想法。相反,经理有一组员工。有两个表,EMPLOYEE 和 MANAGER:
这些类看起来像这样:
Employee.java(为简洁起见,省略了 setter 和 getter):
管理器.java
我已经用几名员工填满了表格,所有这些员工都有同一个经理,除了一名员工 - 那个是经理。他自己没有经理。(如果您正确地关注我,那么很明显我在 manager 表中有 1 行,其中 EMPLOYEEID 引用了 EMPLOYEE 表中的一行,它的 MANAGERID 为 null)。
所以,这个设置对我来说看起来是正确的,但是当我尝试查询所有 Employee 对象时:
我得到一个讨厌的堆栈跟踪:
原因:org.hibernate.PropertyAccessException:无法通过 org.hibernate.property.DirectPropertyAccessor$DirectSetter.set(DirectPropertyAccessor.java:151) 的 hata.staff.entity.Employee.manager 的反射设置器设置字段值。 hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:586) at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:231) at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister. java:3824) 在 org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:153) 在 org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:898) 在 org.hibernate.loader.Loader.doQuery(Loader .java:773) 在 org.hibernate.loader.Loader。doQueryAndInitializeNonLazyCollections(Loader.java:270) at org.hibernate.loader.Loader.doList(Loader.java:2294) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2172) at org.hibernate.loader.Loader .list(Loader.java:2167) at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:448) at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363) at org. hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1258) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)在 org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:236) ... 108 更多第2172章) (QueryTranslatorImpl.java:363) 在 org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) 在 org.hibernate.impl.SessionImpl.list(SessionImpl.java:1258) 在 org.hibernate.impl。 org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:236) 上的 QueryImpl.list(QueryImpl.java:102) ... 108 更多第2172章) (QueryTranslatorImpl.java:363) 在 org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) 在 org.hibernate.impl.SessionImpl.list(SessionImpl.java:1258) 在 org.hibernate.impl。 org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:236) 上的 QueryImpl.list(QueryImpl.java:102) ... 108 更多java:1258) 在 org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) 在 org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:236) ... 108 更多java:1258) 在 org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) 在 org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:236) ... 108 更多 原因:java.lang.IllegalArgumentException:无法在 sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException (UnsafeFieldAccessorImpl.java: 164) 在 sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:168) 在 sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81) 在 java.lang.reflect.Field.set(Field.java:680) 在org.hibernate.property.DirectPropertyAccessor$DirectSetter.set(DirectPropertyAccessor.java:139) ... 124 更多
我是否编码错了,或者休眠根本无法处理这种情况?我会很感激任何帮助。
java - EJB 服务器端可以向 EJB 客户端发送事件吗?
我想知道是否可以按照以下方式做一些事情:
1)服务器端(EJB类)
2) 客户端
A) Java EE 规范中有什么允许这样做的吗?
B) 我知道 JBoss 允许某种双向通信,但我可以像那个例子那样做吗?
C) 在 OpenEJB(或 TOMEE)中有类似的东西吗?
java - Java:加密的服务器/客户端双向通信?
在服务器和多个客户端之间建立加密双向通信的最佳方法是什么?
服务器具有持久性数据库,并将数据发送给客户端,客户端将发送回数据。这必须加密,以最好地防止网络嗅探工具等。
Netty 服务器会是一个很好的选择吗?我可以使用带有 netty 和客户端应用程序的套接字连接到服务器吗?
谢谢你。