是否可以拥有不可变的 JPA 实体?

2024-04-10

在我们的 Hibernate 项目中,实体是使用 Java bean 模式进行编码的。我们的代码中有很多地方有人忘记设置变异器,并且由于以下原因我们得到了异常NOT NULL约束。

是否有人使用构建器来构建他们的实体或使它们不可变?

我正在尝试找到一种不属于 Java bean 模式风格的有效模式。


如果你让你的bean不可变,那么你必须使用字段级访问,这会带来一系列问题,正如我们深入讨论的那样here http://java.dzone.com/articles/jpa-implementation-patterns-7。我们采取的方法是让构建器/工厂为我们执行/验证需求等规则。

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

是否可以拥有不可变的 JPA 实体? 的相关文章

随机推荐

  • 为什么在这段代码中,await 不会阻塞 flutter 中的 ui

    在默认示例应用程序中 每当您创建新的 flutter 项目时 我都添加了以下代码 initState super initState loop loop async while true await Future delayed Durat
  • C# 中的数组列表

    我们可以将 ArrayList 作为参数传递给 C 中的方法吗 绝对地 然而 你很少应该这样做 这些天你应该差不多always使用泛型类型 例如List
  • 动态 SQL 查询根据单元格中的空值忽略空值

    我有一个动态 SQL 查询 在运行时具有不同的列名和表 我希望让 SQL 查询根据行是否在任何单元格中包含 Null 值来忽略读取数据 SELECT rsv intension rsvt FROM resolve table kb wher
  • 使用复杂风味树更改 google-services.json 的搜索位置

    我知道已经有人问过这个问题 但是对于 4 2 0 以上的 com google gms google services 的任何版本 问题仍然存在 我的 google services json 文件的搜索位置不再考虑风味树状结构 它只写着
  • 使用 Angular JS 时如何加载 AMD 模块?

    由于某种奇怪的原因Angular JS 有自己的模块系统 既不是 AMD 也不是 CommonJS http docs angularjs org guide module 我有许多 AMD 格式的现有模块 我想在 Angular 应用程序
  • ADL 是否适用于全局命名空间?

    Examples https stackoverflow com a 5076640 321013 such as https groups google com forum original comp lang c moderated 1
  • 多个 Android 应用程序依赖于带有 gradle 的 android 库

    我仍在学习 gradle 但根据我所读到的内容 我想知道这是否可能 我有多个 Android 应用程序 app1 app2 app3 它们依赖于 android 库 L android 库 L 将依赖于 volley 等外部库 而应用程序将
  • 如何在android中的NumberPicker中自定义数字的值?

    我有一个数字选择器 用于设置以 MB 为单位的数据限制 现在 我有 numberPicker 包含按顺序排列的数值 如 1 2 3 2000 MB 但我想要一个应包含 100 200 300 2000MB 等数值的 numberPicker
  • PostgreSQL psycopg2 返回字符串元组而不是元组元组?

    我有一个奇怪的问题 在搜索 Google SO 没有发现类似的情况后 我不太确定如何解决它 当我尝试从光标获取查询结果时 它给了我一个元组的元组 除了元组是字符串 下面是代码 def queryFeeds db sql SELECT ngo
  • 如何在作业开始前清理 Jenkins 管道中的工作区

    我需要在构建开始之前清理工作区 我尝试使用cleanDir 分阶段进行 但在声明性管道中 检查首先发生 并且当阶段与cleadDir运行时 签出的代码也会被清除 这是不希望的 在声明式管道中签出之前 我们如何清除工作区 实际上 我必须根据管
  • 如何将本地 django 制作的站点移动到另一台机器上?

    我努力寻找我的查询的解决方案 但没有成功 我在本地机器上使用 django 制作了一个网站 现在我想在另一台机器上安装相同的 django 制作的网站 MySQL是我正在使用的数据库 如何将本地 django 制作的网站移动到另一台机器上
  • PHP - Postgresql 如果返回错误,如何回滚查询?

    我正在使用 php 和 postgres 进行 CRUD 我想知道如果出现错误是否有办法回滚事务 实际上 如果我在事务中遇到错误 id 主键 就会增加 然后我会丢失一个 id 以供将来使用 我该如何预防 我的意思是 如果插入查询失败 不要在
  • 套接字无法连接到端点

    var socket new Socket localhost 4000 socket connect Returns WebSocket connection to ws localhost 4000 ws failed Error du
  • 扩展 Backbone.Collection 原型

    继从这个问题 https stackoverflow com questions 10219182 retrieve element from backbone collection removen 我正在尝试使用一些自定义方法来增强 Ba
  • AWS lambda函数在超时错误后停止工作

    我有一个简单的 lambda 函数 它异步进行 API 调用 然后返回数据 99 的情况下这都非常有效 当 API 花费的时间超过 lambda 配置的超时时间时 它会按预期给出错误 现在的问题是 当我对 lambda 函数进行任何后续调用
  • Xcode 5 中的代码签名

    我在 Xcode 5 中验证我的应用程序时遇到问题 我在 2 周前提交了更新 Xcode 4 正常 我没有触及任何证书或配置文件 当我尝试验证时 我得到 当我尝试下载身份时 Xcode 崩溃了 我进入偏爱 gt accounts并刷新了我的
  • 如何删除iOS应用程序中呼叫某人时的弹出窗口? [复制]

    这个问题在这里已经有答案了 我想建议用户从应用程序拨打电话 并弹出一个带有特定文本的窗口 我首先向他展示弹出窗口 如果他同意 然后我运行代码从应用程序拨打电话 但与使用无关tel telprompt tel 对于链接 我总是从系统中弹出第二
  • 使用 Flask wtforms 验证器而不使用表单

    我正在从 iOS 应用程序接收用户注册数据 我想使用 wtforms 附带的验证器来确保电子邮件和密码可接受 但是 我没有使用 Flask 表单 因为用户是从 iOS 文本字段输入数据 是否可以使用 wtforms 验证器检查传入的 JSO
  • 如果 Aurelia 理解“导入”,为什么还要使用依赖注入?

    我不明白 如果我可以使用import在 Aurelia 中 为什么我必须将构造函数与 autoinject 还有这一切 我确信我错过了一些东西 但是 据我所知 我可以随时使用导入的模块 import something from whate
  • 是否可以拥有不可变的 JPA 实体?

    在我们的 Hibernate 项目中 实体是使用 Java bean 模式进行编码的 我们的代码中有很多地方有人忘记设置变异器 并且由于以下原因我们得到了异常NOT NULL约束 是否有人使用构建器来构建他们的实体或使它们不可变 我正在尝试