问题标签 [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 投票
1 回答
3978 浏览

java - 扩展 JPA 实体映射

我正在寻找一种简单的方法来扩展现有的 JPA 映射。思路如下:

我有一个带有 EJB3+JPA 模块的 EAR 项目,它有 ClassA 注释并映射到表 class_a。但我希望其他一些模块(另一个 EJB 模块)具有 ClassB,它为 ClassA 添加更多属性(扩展?)。

我想到的一种方法是将这些附加字段添加到 class_a 表并运行非 HQL 查询来检索该数据。这不好,因为我必须手动做很多事情:类型映射,列映射等。

我做了简单的检查,但似乎我无法在第二个模块中扩展 ClassA(通过 ClassB),因为它们使用不同的 EntityManagerFactories 并且第二个模块看不到第一个模块中的某些类,反之亦然。

我已经在persistence.xml 中看到了<jar-file> 标记。我需要类似的东西,但是使用它需要在第一个模块中列出该文件并且它必须存在(如果找不到它不会跳过)。有没有类似的东西可以放在扩展模块(第二个)而不是可扩展模块(第一个)上?

如果有一种方法可以在运行时扩展 JPA 映射,那就太好了。有没有这样的方法?我的问题还有其他解决方案吗?

0 投票
2 回答
2911 浏览

java - EJB3 查询 + in 子句

我需要使用如下 SQL 的 IN 子句

我如何在 EJBQL 中做到这一点?

我尝试了以下方法,显然失败了:

然后在java中我做了

这给了我以下例外

0 投票
1 回答
629 浏览

java - EJB 容器中的 Spring 2.5

我想在 EJB3 项目中使用 spring 框架。具体来说,我想使用应该从给定数据源实例化的 JDBC 模板类。当我将 spring.jar 放入我的 Jboss lib 目录时,一切正常。但是当我将 JAR 放在我的 EAR 中时,似乎只有从 JDbcTemplate 到其他库的外部依赖项。EARs/EJBs 类加载器尝试实例化 JdbcTemplate 并向我显示由于外部依赖关系他无法加载该类。它没有显示我必须放入哪些额外的 JAR。

问题:是否有人知道我必须包含哪些额外的 JAR,甚至知道如何使用外部工具搜索依赖的 JAR。我记得有一个工具可以做到这一点,但我不知道它的名字了。我想像 jarjar 之类的东西。

有人可以帮忙吗?谢谢你。

0 投票
2 回答
1690 浏览

jboss - 如何获得无状态 EJBs JNDI 路径?

有没有办法让我的无状态 EJBs JNDI 路径?假设我写了一个这样的 EJB:

有没有办法在初始化期间发现 BookBeans JNDI 路径?我需要这个在初始化期间将某些 bean 自动订阅到全局注册表。还有其他方法吗?

0 投票
1 回答
1383 浏览

jpa - 控制 EclipseLink 创建表时的列顺序

我正在使用将“eclipselink.ddl-generation”属性设置为“create-tables”的 EclipseLink。创建的表中列的顺序似乎是随机的。我希望列按特定顺序 - 字段出现在实体类定义中的顺序。

有没有办法告诉 EclipseLink 按实体类定义中的顺序创建列,或者以其他方式指定列顺序?

谢谢。

0 投票
2 回答
6682 浏览

java - EJB 3:从应用程序客户端访问有状态会话 bean

我在从应用程序客户端访问有状态会话 bean (SFSB) 时遇到了一些问题。我正在使用 JBoss 5.0.1.GA。应用程序客户端和 EJB 都打包在一个 EAR 中进行部署,我还有其他应用程序客户端可以正常工作。到目前为止,我只使用了无状态会话 bean (SLSB),但据我了解,SLSB 和 SFSB 之间的差异不应该影响从应用程序客户端访问它们的方式。

类/接口的结构:

应用程序客户端通过“appclient-launcher”运行,如“如何在 JBoss 5 中使用应用程序客户端”中所述。在执行 init() 期间调用(本地)ABean 上的 someMethod() 之前,查找“BBean”工作正常。在该调用期间,容器抛出 InvalidStateException("Local call: security context is null") (作为根本原因)。当我将有状态 bean 更改为无状态 bean 时,一切正常(当然,除了没有保留状态)。有趣的是,我可以很好地使用来自 Web 应用程序(在 JSF 托管 bean 中)的完全相同的 SFSB。

难道我做错了什么?我应该如何从应用程序客户端使用 SFSB?

到目前为止,我还没有发现任何关于这个特定问题的有用信息。该异常在[#JBAS-4317] Security Context over the invocation中的类似上下文中提到,但考虑到它被标记为已完成并在 JBoss 5.0.0.Beta3 中已修复,这似乎不是同一个问题。

0 投票
3 回答
948 浏览

java - EJB3构造函数抛出异常?

如果 EJB3 无状态/有状态 bean no args 构造函数抛出异常,会发生什么?例如,A 类有一个 DI:

B 在构造函数中抛出异常?我没有在 EJB3 规范中找到任何关于这种情况的提及。我猜想 A 类的实例被丢弃了,因为它真的没有办法成功完成它的任务。

0 投票
1 回答
3923 浏览

java - 为什么使用 Hibernate 进行查询缓存会使查询慢十倍?

我目前正在尝试使用 EJB3 作为工作中的一个主要项目的预研究。我正在研究的一件事是查询缓存。

我已经制作了一个非常简单的域模型,其中包含 JPA 注释、@Local 业务接口和 EJB-JAR 中的 @Stateless 实现,部署在 EAR 中以及非常简单的 webapp 以进行一些基本测试。EAR 部署在 JBoss 5.0.1 默认配置中,没有进行任何修改。这非常简单,并且按预期工作。

但是,我最近的测试涉及查询缓存,我得到了一些奇怪的结果:

  • 我有一个域类,它只映射一个 ID 和一个字符串值,并在该特定表中创建了大约 10000 行
  • 在业务 bean 中,有一个非常简单的查询,SELECT m FROM MyClass m
  • 在没有缓存的情况下,平均执行时间约为 400 毫秒
  • 启用查询缓存(通过查询提示),第一次执行当然需要更长的时间,大约 1200 毫秒。下一次执行平均需要 3500 毫秒!

这让我很困惑,所以我启用了 Hibernate 的 show_sql 来查看日志。未缓存,并且在启用缓存的第一次执行时,如预期的那样记录了一个 SELECT。当我应该获得缓存命中时,Hibernate 为数据库表中的每一行记录一个 SELECT。

这当然可以解释执行时间缓慢,但谁能告诉我为什么会发生这种情况?

0 投票
2 回答
10041 浏览

hibernate - Glassfish 中的休眠 - Ejb3Configuration NoClassDefFoundError

我已经将 Hibernate 库放在 Glassfish 域和我在 Netbeans 中的项目的库集合中。hibernate-entitymanager.jar包含 HibernatePersistence(调用堆栈中的最后一个类)和 Ejb3Configuration,所以我很难理解为什么我会收到 Ejb3Configuration 的缺失类错误。

0 投票
1 回答
2158 浏览

java - EJB3 bean 中的可选注入或运行时依赖项检查

我想定义注入,以便只有注入的接口具有 EJB 才会被注入。它用作主 EJB 的插件。这该怎么做?对此有一些注释吗?

我可以使用@PostConstruct 手动“注入”变量。但是我必须自己处理依赖关系。知道其中一个是可选的,我如何处理依赖项?如何处理不同依赖模块的部署顺序。

更新: 我看到谷歌有一个带有optional参数的注入注释:

更新 2: JBoss 有一些我正在寻找的东西: