问题标签 [ejb-3.0]

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.

0 投票
3 回答
6690 浏览

java - 如何在 EclipseLink 中配置查询缓存

我有一组状态,我想在应用程序的生命周期内缓存它们,最好是在第一次调用它之后。我使用 EclipseLink 作为我的持久性提供程序。在我的 EJB3 实体中,我有以下代码:

不过,这似乎没有任何作用,如果我监控到 MySQL 的 SQL 查询,它仍然会在每次我的会话 Bean 使用这个 NamedQuery 时进行选择。

配置此查询的正确方法是什么,以便它只从数据库中读取一次,最好是在所有会话中读取?

编辑:我这样调用查询:

0 投票
1 回答
958 浏览

database - 通过 EJB3.0 和 JPA 存储最后修改数据库行的用户名

我想将上次修改表行的用户名存储为每个表中的字段。

我有以下设置:用户登录,Web 层调用一些 EJB 3.0 bean。这些 EJB bean 创建和修改一些 JPA 实体。现在,我希望将用户名(来自 weblayer)自动存储到在 EJB 方法调用期间创建或修改的每个 JPA 实体(和数据库行)。

我有这种表,(即:每个表都有字段修饰符):

自动我的意思是,我不需要为 EJB 方法中的每个实体手动设置用户名。

您可以通过将用户名存储到 ThreadLocal 变量并从 JPA 实体的 EntityListener 中的 ThreadLocal 获取用户名来实现此目的。但是,这只适用于您使用本地 EJB 调用,它不适用于跨 JVM 边界的 EJB 调用。我想通过远程 EJB 方法调用来完成这项工作。

这可能吗?

我正在使用 Weblogic Server 10.3、EJB3.0 和 EclipseLink JPA。我也有兴趣了解这是否适用于其他 JPA 实现。

0 投票
1 回答
3033 浏览

database - 如何在 EJB 3 中为每个方法设置隔离级别

是否可以为给定的 EJB 3 方法调用设置数据库隔离级别(即可序列化、可重复读取等)?

我知道这不在 EJB 规范中,因此如何在 JBoss 或 Glassfish 特定方式上执行此操作的详细信息会很棒。

我开始觉得这是不可能的,你只能为每个连接池设置它,这显然不是一个理想的解决方案。

0 投票
4 回答
6213 浏览

hibernate - 是否可以使用 hibernate 作为 Glassfish 的持久性提供程序?

是否可以使用休眠作为 Glassfish 的持久性提供程序,如果可以,如何?

0 投票
4 回答
6267 浏览

servlets - 将 EJB 作为实例变量注入 servlet 是否安全?

我们都知道,在 Web 层中,可能只存在给定 Servlet 的单个实例,它服务于多个请求。这可能会导致实例变量中的线程问题。

我的问题是,使用 @EJB 注释将 EJB 作为实例变量注入 servlet 是否安全?

我最初的直觉是不会,假设同一个 EJB 实例会同时服务多个请求。这似乎也是许多其他程序员的本能:不要注入到 servlet

但是,我是否跳到了错误的结论。很明显,注入到 servlet 的是代理,在底层,容器实际上是否使用不同的实例为每个请求提供服务并维护线程安全?正如这个论坛所建议的那样:Do inject to servlet

似乎有很多相互矛盾的意见。哪个是对的???

0 投票
2 回答
2589 浏览

jboss - 来自 servlet 的 JBoss 5 AS 和 EJB3 bean 注入?

我的理解是 JBossAS 5.x 支持在带有 @EJB3 注释的 servlet 中注入 EJB3 bean。我正在使用 JBossAS 5.0.1.GA 的默认配置,但它不起作用。我已经将 mappedName 参数添加到带有会话 bean JNDI 名称的 @EJB 注释中,它只是没有做任何事情。没有明显的错误,只是从未注入过 bean。

会话 bean 在 ejb-jar 中,servlet 在一个战争中,一切都打包在一个耳朵里。手动 JNDI 查找工作得很好。有任何想法吗?

0 投票
2 回答
2004 浏览

java - Ejb 3,消息驱动的 bean 与有状态会话 bean 合作?

嘿!我对 Java EE 和 Stackowerflow 都比较陌生,请善待 :-)

我有一堆设备触发 Java 消息,以便在任何状态更改时发送。这些设备通常在大约 30-90 分钟的时间间隔内处于活动状态。除了事件详细信息之外,每条事件消息都包含一个设备 ID。

我的应用程序的核心是订阅这些事件的消息驱动 bean。每次收到事件时,我都必须访问数据库以查找有关设备的一些信息。

如果我可以将有状态会话 bean 与每个活动设备相关联,那将是非常棒的!如果这是一个 Web 应用程序,我会使用 http 会话来存储有状态 bean 的句柄或引用(我是对的吗?)。有什么方法可以从我的消息 bean 中存档?

0 投票
5 回答
8347 浏览

java - EJB3 bean 可以“自我注入”并通过 EJB 容器调用自己的方法吗?

是否可以“自注入”EJB 以将本地方法调用为 bean 方法?在某些情况下这可能是有利的,例如,如果使用容器管理的事务并且应该在新事务中完成某些事情。

这是如何工作的一个例子:

Foo.java:

FooBean.java:

如果我提取processWithNewTransaction()到另一个 bean,它需要在接口中作为公共方法公开,即使它应该只由FooBean. (我上面的代码也有同样的问题,这就是接口定义中有注释的原因。)

一种解决方案是切换到 bean 管理的事务。然而,这将需要更改整个 bean 来管理它自己的事务,并且会为所有方法添加大量样板。

0 投票
3 回答
5458 浏览

java - 如何为 EJB 选择本地接口?

假设我有以下 EJB(使用 ejb3):

该类可通过本地和远程接口使用。

如何在应用程序的另一部分注入此 EJB 的本地接口?

具体来说,我不确定如何创建选择本地接口的@EJB 注释。例如,以下内容是否足够?

特别是,我想避免仅仅为了通过@EJB 的“beanInterface”属性进行区分而创建单独的本地和远程接口。

0 投票
2 回答
1079 浏览

java - 休眠和 CMT

最近我决定在我的项目中实现 CMT 事务(jBoss5、Hibernate、jta postgres 数据源)。除了我的实体中的 Hibernate.initialize() 之外,一切都运行良好。它在 EJB bean 中工作,但是当尝试在实体 getter 中调用初始化时,我得到“无法与会话关联”异常。在实施交易之前它工作得很好。有人遇到同样的问题吗?