Hibernate 实体中的 CDI 注入

2023-12-06

我们在应用程序中使用 CDI(JSR 299) (JSF2/Seam3.0/Hibernate 3.5.6/GlassFish 3.1.1)

虽然我们无法使用 @Inject 在托管 bean 中注入资源(Helper POJO),但我们也无法在 Hibernate 实体类中执行相同的操作。

我们有一个所有实体对象派生自的基实体类(@MappedSuperclass)。 CDI 注入在两个类别中均失败。

@MappedSuperclass
public class BaseBusinessObject implements Serializable
{     
    @Inject
    private TestClass testClass; //FAILS
}


@Entity
@NamedQueries({ @NamedQuery(name = "Account.findAll", query = "SELECT b FROM Account b") })
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Account extends BaseBusinessObject
{
    @Inject
    private TestClass testClass; //FAILS

}

看起来这可能是 CDI 的限制。任何人都可以确认 CDI 是否适用于 Hibernate 实体。

任何意见将不胜感激。

感谢和问候


我不太了解 CDI,但我真的不认为这是可能的。 如果我们可以的话,在很多情况下,它可能会导致非常糟糕的设计。

您是否希望 CDI 为整个应用程序创建单个休眠实体,并在其中注入您的帮助程序/服务/其他内容? 或者您是否希望 CDI 在您使用“new Entity()”创建的任何实体中注入内容?


Edit:一般来说,日期时间 utils 不保存任何状态,也不需要任何 CDI 注入的东西,那么为什么不像我们在 apache commons DateUtils 中找到的那样将所有方法设为静态呢?

如果您的日期时间实用程序需要一个状态,请将其设为单例(但要注意并发问题)。

如果您的日期时间实用程序需要调用其他 CDI bean(因此它不能是静态的),那么您宁愿将其设为单例,并在单例上注入其他 CDI bean。

但这是个坏主意。这可能会导致业务层管理回调业务层的实体或类似的东西,并存在一些循环依赖问题以及实体和业务层之间的紧密耦合。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hibernate 实体中的 CDI 注入 的相关文章

  • hibernate sessionfactory如何管理session?

    我刚刚得到了Hibernate Session和Connection之间的关系 但现在 我又遇到了一个问题 hibernate sessionfactory如何管理session 在以下代码段中 DAO 类的 save 方法 Session
  • Hibernate 和可序列化实体

    有谁知道是否有一个框架能够从实体类中剥离 Hibernate 集合以使它们可序列化 我查看了 BeanLib 但它似乎只进行实体的深层复制 而不允许我为实体类中的集合类型指定实现映射 BeanLib 目前不适用于 Hibernate 3 5
  • Hibernate Session 刷新行为 [ 和 Spring @Transactional ]

    我在网络应用程序中使用 Spring 和 Hibernate SessionFactory被注入到DAO bean中 然后通过webservicecontext在Servlet中使用该DAO DAO 方法是事务性的 在我使用的方法之一内 g
  • 如何在 Hibernate 拦截器中获取 Hibernate 会话?

    如何在 Hibernate 拦截器中获取 Hibernate 会话 我正在尝试使用 Hibernate 透明地强制按组织 ID 进行数据访问 我设置了一个全局过滤器来按组织 ID 过滤所有查询 现在 我需要在保存 更新之前使用实体拦截器在所
  • 将 hyperjaxb3 升级到 jpa 2.1

    我正在尝试在使用 maven jpa hibernate 和 hyperjaxb 的 eclipse 项目中升级到 JPA 2 1 当我尝试执行以下操作时出现以下错误Run As Run on Server从日食内部 java lang N
  • 条件对列表的 In 子句

    有一个表 我需要通过在配对值列表中应用和条件来获取分页记录 下面是解释 假设我有一堂课Billoflading其中有各个领域 表中两个重要字段是 tenant billtype 我有一个包含值的对列表 tenant1 billtype1 t
  • 如何使用 log4j2.xml 配置 hibernate 日志记录?

    我最近切换到 Apache log4j2 但仍然找不到使用 log4j2 xml 配置 hibernate 日志记录的方法 因为我找不到解决此问题的方法 所以我仍然显式使用 log4j properties 文件进行休眠 这不是最好的解决方
  • 如何从 Spring Boot 中排除依赖项

    我正在使用 Spring Boot 以下是我的 gradle 文件 buildscript ext springBootVersion 2 0 0 BUILD SNAPSHOT repositories mavenCentral maven
  • 何时在 hibernate 中使用 DiscriminatorValue 注解

    在 hibernate 中使用 DiscriminatorValue 注释的最佳场景是什么以及何时 这两个链接最能帮助我理解继承概念 http docs oracle com javaee 6 tutorial doc bnbqn html
  • 构造hibernate实体时如何处理双向关系?

    我想使用 JPA Hibernate 对两个实体 一个组和一个帐户 之间的关系进行建模 一个帐户可以有多个组 但反之则不然 因此帐户和组之间存在 OneToMany 关系 我的工作同事建议对实体进行建模Account and Group l
  • Java Hibernate 和 SQL Server 中 UUID 的不同表示

    我正在尝试绘制一个UUID使用 Hibernate 将 POJO 中的列转换为 SQL Server 表列 注释的应用如下 Id GeneratedValue Column name Id columnDefinition uniqueid
  • JPA:如何将字符串持久保存到数据库字段中,输入 MYSQL Text

    需求是用户可以写文章 所以我选择typeText为了contentmysql数据库内的字段 我怎样才能转换Java String into MySQL Text 干得好Jim Tough Entity public class Articl
  • 在 JPA 中保留 Java 8 LocalTime

    我的一个实体中有一个 Java 8 LocalTime private final LocalTime departureTime 它是一个带有 Spring Data Rest 的 Spring Boot 1 3 6 应用程序 我使用 J
  • spring data jpa 过滤 @OneToMany 中的子项

    我有一个员工测试实体是父实体并且FunGroup信息子实体 这两个实体都是通过employeeId映射 我需要一种方法来过滤掉与搜索条件匹配的子实体 以便结果仅包含父实体和子实体 满足要求 员工测试类 Entity name Employe
  • 如何使用 Hibernate 转换平面结果集

    是否可以将 SQL 结果映射到非平面对象 List
  • Jpa 复合键可为空列

    我正在使用 Hibernate 的 JPA impl 来对一些表进行建模 我在映射表时遇到问题 没有主键 在 4 列上有唯一索引 其中 3 列可以为空 我尝试破解它并将索引定义为复合 Id 但由于某些列可为空 因此无法正常工作 JPA Hi
  • 如何在没有@Transactional的情况下使用Hibernate @Filter?

    我使用 Hibernate Filter 和 Spring Data 为项目中的每个查询添加特定的 where 子句 问题是 只要我对 findAll 方法使用 Transactional 注释 它就可以工作 有什么办法可以避免使用 Tra
  • 在 Eclipse 中生成 POJO 的所有 setXXX 调用?

    我目前正在对 JPA 实体进行大量测试 其中我必须不断调用实体上的 setter 方法 如下所示 myEntity setXXX value myEntity setYYY value myEntity setZZZ value Eclip
  • 在SPRING BOOT中配置多个数据库

    我正在尝试为我的 Spring Boot 应用程序连接 2 个不同的数据库 但出现此错误 应用程序无法启动 描述 com SyncFibertToolSpring SyncFibertTool MydbDB Config MydbDbCon
  • Hibernate 命名查询使用 Like 和 % % 运算符?

    在我的 Hibernate JPA 示例代码中 public List

随机推荐

  • 单独元素的边距如何影响固定元素的位置?

    我有两个独立的DIVs one position fixed用于通知栏 一个用于主容器 当我给出container some margin top 这也推送了我的通知栏 这是一个小提琴 http jsfiddle net Zh9k8 2 而
  • 将 OpenStreetMaps 与 Cordova 集成

    我想知道你们是否知道如何将开放街道地图 OSM 与科尔多瓦一起使用 这几天都在找 我能得出的结论是 我不应该直接使用 OSM 的 API 因为如果我有太多调用 他们的服务器会阻止我 所以有免费的开源名称 例如 1 Openlayers 2
  • Android 4.4.2 仅在完整的 Java 代码动画期间在视图对象边界外部创建黑色遮罩

    在这方面确实需要一些帮助 请看一下这个简单的 ImageView 淡入动画 使用完整的 java 代码 使用 API 21 18 17 16 重新创建它 效果非常好 现在尝试使用 API 19 android 4 4 2 创建有趣的掩码 参
  • Highcharts 仪表使工具提示可见并居中

    当屏幕大小调整时 我无法让 Highcharts 仪表的牙尖出现并保持可见并在仪表内居中 在我的小提琴中 您可以看到工具提示出现 然后在一小段时间后消失 此外 当调整窗口大小时 它不会保留在仪表的中心 任何帮助表示赞赏 我的JSFIDDLE
  • Flutter 将文件作为流读取

    我希望用户在文本字段中输入文本 当用户单击 fab 时 文本将作为新行写入文件 附加 我希望我的应用程序读取文件的内容 并将每一行显示为列表视图中输入文本字段下方的列表图块 当用户输入新文本时 该文本应立即出现在列表视图中 我能够将文本写入
  • 使用资源适配器调用大型机的 Jboss CICS 交互

    我已经在 J boss EAP 6 2 上安装了 cicseci rar 该资源适配器是从下载的http www 01 ibm com support docview wss uid swg24008817 sthash 3k4M8smo
  • 在不知道结构的情况下以通用方式读取 xml 文件/字符串

    我想将 XML 层次结构读入内存对象树中 XML 树可以有 n 层子级 我不知道确切的数字 我的内存中对象具有要绑定到树控件的子属性和父属性 当我不知道 xml 元素标签是如何准确调用 写入时 如何以通用方式将 xml 文件 字符串读取到内
  • 谁能解释一下 MySQL 外键

    我知道它们是什么 我的问题是 如何链接它们 或者当您在不同的表中具有相同的名称时它们是否会自动链接 这是一个例子 假设我有一个 orders 表和一个 customer 表 orders 表中的每一行都有一个 customer id 编号
  • QUIC 流量生成

    我想知道这个社区中是否有人知道 找到一种模拟 QUIC 流量配置文件的方法 为了通过 WLAN WiFi 分析 模拟 youtube 我想知道是否有像 iperf 这样方便的软件包 谢谢 巴拉特 CP 目前还没有任何模拟框架可用于测试 QU
  • 如何在颤动中添加选项卡顶部和底部

    顶部选项卡仅显示主页 并且通过滚动或点击显示 3 个不同的页面 底部选项卡则显示整个应用程序 如菜单 当我编写代码时 我会得到如下图所示的视图 但我无法点击或重定向页面 导航代码我只给出了顶部或底部选项卡 而不是两个选项卡 主页 dart
  • 使用 JavaScript 进行表单验证?

    我正在尝试使用 JavaScript 进行表单验证 但是我似乎没有得到任何响应 甚至没有收到警报 即使它在那里
  • user.admin 在哪里?在 Rails-devise-pundit 入门应用程序中定义?

    I used RailsApps Rails composer创建一个 Rails devise pundit 入门应用程序 我对 Ruby on Rails 还有点陌生 对 pundit 和 Rails 4 的设计也比较陌生 我正在查看代
  • 如何在android搜索栏中添加数字刻度?

    我正在尝试使用内部具有数字比例的自定义搜索栏 但不起作用 该搜索栏必须支持所有屏幕分辨率 我怎样才能做到这样 请提出您的宝贵意见 我的custom seekbar xml
  • 如何在 Google 应用引擎数据库中过滤具有空引用的行

    我有一个 Model UnitPattern 它引用另一个 Model UnitPatternSet e g class UnitPattern db Model unit pattern set db ReferenceProperty
  • 中心操作栏标题

    如何在 Android 中将 Activity 的操作栏标题居中 我已经看到很多关于这个特定主题的问题 每个答案都回到 使用自定义视图 并拥有自己的工具栏 我找到了一种无需创建自定义视图即可工作的解决方案 在你的中有这个方法Activity
  • 在 WooCommerce 订单编辑页面中显示产品运输类别

    我正在使用一个函数 该函数允许我根据每种产品的运输类别计算购物车中的多个运费 功能没有问题 很完美 但是 当我在 woocommerce 管理区域检查请求时 我需要在提交方法中识别每个项目对应的类名称 也就是说 我需要区分每个类别的商品 因
  • 在 MS IE11 中启用全屏时无法滚动

    我有一个使用 Bootstrap3 具有固定页眉和页脚的页面 下面的内容是可滚动的 用户可以通过 F11 或按钮 使用 FullScreen API 启用全屏模式 这在 Chrome 和 FF 中工作正常 但在 IE11 中出现问题 F11
  • 复制构造函数未调用

    当我读到复制初始化与直接初始化时here 复制构造函数应该在复制初始化中调用 为什么这里没有调用复制构造函数 include
  • 导入且未使用错误

    我使用以下导入代码收到以下错误 代码 包主 import log net http os github com emicklei go restful github com emicklei go restful swagger api E
  • Hibernate 实体中的 CDI 注入

    我们在应用程序中使用 CDI JSR 299 JSF2 Seam3 0 Hibernate 3 5 6 GlassFish 3 1 1 虽然我们无法使用 Inject 在托管 bean 中注入资源 Helper POJO 但我们也无法在 H