hbm.xml 中映射的属性可以是暂时的吗?

2023-11-22

假设我有一个User像这样的实体:

class User {
    private String login;
    transient private String hashedPassword;
}

我永远不想转移hashedPassword给客户,所以我把它变成暂时的。

该类由 Hibernate 映射,两个字段都映射在 hbm.xml 中。

这个实现安全且正确吗? Hibernate会正确存储hashedPassword在数据库中,将其加载到数据库中的对象中,将其保存在复制的二级缓存和本地会话缓存等中?

换句话说,Hibernate 或二级缓存是否尊重transient以任何方式或完全忽略它?

EDIT:我已经得到了两个答案,但似乎没有包含方程式的某一特定方面。我根本不使用注释,只使用 XML 映射hbm.xml。这个 Java 瞬态字段是 OR 映射的hbm.xml.


Hibernate 不保存未映射/瞬态属性.

Hibernate 理解标准 java 瞬态修饰符的重要性 - 但也允许您使用 @Transient 注释将属性注释为瞬态,如果您选择的话......或者干脆将该字段从映射文件中删除。

在你的情况下,你可能不需要做任何特殊的事情,休眠应该简单地“做正确的事情”,通过忽略未映射的字段。

所以:这里学到的教训 -

如果只使用hbm.xml

1) 未映射的属性不会被 hibernate 保存——它们实际上是暂时的。

如果使用 POJO

2)Hibernate将忽略保存“@Transient”注释变量:

@Transient
int ignored=0;

3) Hibernate 还将忽略使用标准“transient”修饰符保存变量:

private transient int ignored =0;

See http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/对此有一个很好的解释。

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

hbm.xml 中映射的属性可以是暂时的吗? 的相关文章

  • JAVA 中的 Composer 相当于什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我目前从 PHP 转向 java 有没有类似的工具composer https getcomposer org 在 PHP 中用于 JAV
  • 了解 netty 通道缓冲区和水印

    我正在尝试了解网络缓冲区和水印 作为一个测试用例 我有一个 netty 服务器 它向客户端写入数据 客户端被阻止 基本上每次读取之间有 10 秒的睡眠时间 在正常 I O 下 如果接收方被阻塞 TCP 发送方将受到限制 由于流量控制 发送速
  • Apache Thrift Java-Javascript 通信

    我正在编写一个基于 Apache Thrift 的 Java 服务器 它将从 Javascript 客户端接收数据 我已经完成了 Java 服务器 但问题是我可以获得 Javascript 客户端的工作示例 我无法找到一个好的示例 构建文档
  • 在 Eclipse 3.5 上安装旧版 TestNG 插件时出现问题

    我正在尝试在 eclipse 3 5 上安装 TestNG 5 11 并获得以下信息 eclipse buildId unknown java version 1 6 0 19 java vendor Sun Microsystems In
  • 将 json 反序列化为对象:包装类解决方法

    这是我的 json accessType Grant spaces spaceId 5c209ba0 e24d 450d 8f23 44a99e6ae415 privilegeId db7cd037 6503 4dbf 8566 2cca4
  • Maven WebApp META-INF context.xml

    我正在使用 Maven 3 并且尝试在 webapp 文件夹下添加 META INF 文件夹 所以我正在尝试执行以下操作 src main webapp META INF context xml WEB INF 下面是我的 POM 文件
  • 如何避免Eclipse在将类名放在注释中时导入类,以便checkstyle稍后不会抱怨?

    有时我将类名放在方法或类的注释中只是为了引用 但是 Eclipse 会自动执行导入并在文件中留下导入语句 这会导致稍后出现 未使用的导入 检查样式错误 当我在注释中输入类名时 是否可以更改一些配置以避免 Eclipse 自动导入 人们不同意
  • 从 CLI 部署 Maven 项目?

    在 IDE 中构建并运行良好 cd home thufir NetBeansProjects HelloMaven JAVA HOME usr lib jvm java 8 openjdk amd64 home thufir local s
  • 避免 @Secured 注释的重复值

    我正在尝试使用以下方法来保护我的服务方法 Secured如下 public interface IUserService Secured ROLE ROLE1 ROLE ROLE2 ResponseEntity saveUser Creat
  • java中如何重新初始化int数组

    class PassingRefByVal static void Change int pArray pArray 0 888 This change affects the original element pArray new int
  • Time.valueOf 方法返回错误值

    我使用 Time valueOf 方法将字符串 09 00 00 转换为 Time 对象 如下所示 Time valueOf LocalTime parse 09 00 00 当我调用 getTime 来显示我得到的值时 28800000
  • RxJava android mvp 单元测试 NullPointerException

    我是 mvp 单元测试的新手 我想对演示者进行一个非常基本的测试 它负责登录 我只想断言 view onLoginSuccess 这是演示者代码 public LoginPresenter LoginViewContract loginVi
  • Java HashSet 是线程安全的只读吗?

    如果我通过 Collections unmodifyingSet 运行 HashSet 实例后 它是线程安全的吗 我问这个是因为 Set 文档声明它不是 但我只是执行读取操作 来自 Javadoc 请注意 此实现不是同步的 如果多个线程同时
  • 获取 Future 对象的进度的能力

    参考 java util concurrent 包和 Future 接口 我注意到 除非我弄错了 只有 SwingWorker 实现类才能启动冗长的任务并能够查询进度 这就引出了以下问题 有没有办法在非 GUI 非 Swing 应用程序 映
  • 开发者环境-如何调用/消费其他微服务

    背景 我的环境 Java Play2 MySql 我在 Play2 gt S1 S2 S3 上编写了 3 个无状态 Restful 微服务 S1 消耗来自 S2 和 S3 的数据 因此 当用户点击 S1 时 该服务会异步调用 S2 S3 合
  • 从 InputStream 中删除换行符

    我喜欢从一个文件中删除所有换行符 对于 n 和 r n java io InputStream 在读取文件时 相应的方法如下所示 param target linkplain File return linkplain InputStrea
  • 使用 Grails GORM 从旧数据库中的 char 字段中去除尾随空格

    映射时去除尾随空格的可能解决方案有哪些char遗留数据库中的字段 我看到以下选项 Calling trim 在使用时 控制器 视图等 重写属性访问器以返回 trim 使用 Hibernate UserType 修剪空格 我倾向于重写属性访问
  • Java 中序列化的目的是什么?

    我读过很多关于序列化的文章 以及它如何如此美好和伟大 但没有一个论点足够令人信服 我想知道是否有人能真正告诉我通过序列化一个类我们真正可以实现什么 让我们先定义序列化 然后我们才能讨论它为什么如此有用 序列化只是将现有对象转换为字节数组 该
  • Unicode(希腊语)字符存储在数据库中,例如“??????”

    数据库中的希腊字符就像问号 我找不到解决办法 我使用 Java Swing 开发了一个应用程序 但是当我在 MySQL 中插入希腊字母时 就像问号一样 我将数据库排序规则更改为 utf8 并将列也更改为 utf8 我的项目编码设置为UTF
  • 如何使用socket.io发送图像文件(二进制数据)?

    我无法从以下位置发送数据Android Client to NodeJS Server I use Socket IO 客户端 https github com socketio socket io client java我的客户端中的ja

随机推荐

  • C# - 静态方法中的参数线程安全吗?

    这个方法是线程安全的吗 看起来好像并不是 public static void Foo string str Guid id str str id ToString Do Stuff return 在这种情况下 参数是两个不可变的值 在一个
  • 我可以同时使用“res.sendFile”和“res.json”吗?

    目前 我正在 Express 应用程序中使用控制器来处理路由 当某条路线被击中时我打电话pagesController showPlayer为我服务index html 这是控制器 use strict var path require p
  • Nixpkgs 存储库中定义的“callPackage”在哪里(或者一般如何查找 Nix lambda 定义)?

    找到了很多描述的来源callPackage以及它的一些内部结构 但没有一个涉及它的位置 这就像 Nix 保守得最好的秘密 甚至手册似乎都在积极回避这个话题 我可以在给定的时间内找到它 但它是一个巨大的回购 资源 Nix callPackag
  • 我可以添加/减去绑定到元素属性的值吗?

    XAML 是否允许修改绑定值 Like Width Binding Elementname lstMine Path Width 100 这样我才能有一个相对的价值 您可以使用转换器来实现此目的 我的WPF 转换器图书馆包括一个Expres
  • 找不到结束分隔符“/”错误

    我调整了一个小脚本来检查反向链接 但我仍然收到错误 警告 preg match function preg match 第 17 行未找到结束分隔符
  • Java中的双倍增量[重复]

    这个问题在这里已经有答案了 可能的重复 如何在Java中以0 1f增量在0 1f和1 0f之间迭代 我的程序的一部分需要在 while 循环内使用值 如下所示 0 1 0 2 0 3 0 9 所以我需要在该循环内提供它们 这是代码 doub
  • NetworkCredential UseDefaultCredentials 不起作用

    我们很久以前就编写了一段代码来使用域凭据调用服务 现在域已更改并计划使用默认 Windows 帐户 所以我试图通过配置重置 asmx web 服务的网络凭据 我创建了一个 SoapExtentsion 类并尝试覆盖那里 即使它执行该行 但它
  • 如何将数据从 Express 服务器传递到反应视图?

    我有一个简单的 Express 服务器 连接到 orientdb 数据库 我需要将信息从 Express 传递到 React 视图 例如 在快递中我有 router get function req res next Vertex getF
  • 创建新Socket时添加超时

    我有一个带有 DHCP 的本地网络和几台 PC 其中之一应该是我的服务器 并自动连接到所有其他服务器 客户端 我的想法是这样的 首先 我在每个客户端 CServer 上创建一个服务器 用于侦听来自服务器 SClient 的客户端程序 当SC
  • java.net.SocketException:软件导致连接中止:recv 失败

    我无法找到以下错误的确切含义的适当答案 java net SocketException Software caused connection abort recv failed Notes 这种错误很少发生且不可预测 尽管出现此错误意味着
  • 在 Angularfire2 中“加入”Firebase 查询

    Update 我遇到的空值字段问题与数据库中不存在的键有关 因此这里的大部分讨论不适用于您的问题 如果您正在寻找一种在 AngularFire2 中 加入 查询的方法 下面接受的答案可以很好地做到这一点 我目前正在使用combineLate
  • 如何从AWS lambda java中的类路径加载属性文件

    我编写了 AWS lambda 函数 因为我想从属性文件和类路径中读取数据库连接详细信息 但我无法加载该文件 这是我的代码 InputStream input DBConfiguartion class getResourceAsStrea
  • 返回无效(0);与返回;中断功能[重复]

    这个问题在这里已经有答案了 我遇到了一些中断函数的代码return void 0 我相信这将被用来返回undefined但这可以简单地通过写来完成return Does return void 0 有一个额外的目的 或者这只是中断函数的两种
  • 使用 Azure Functions 3.0 中的属性将 Enum 序列化为字符串

    我尝试在 Azure Functions 3 0 3 1 应用程序中获取 HTTP 触发器来返回枚举的字符串表示形式 但没有任何运气 我已经尝试过 Core 3 0 和 Core 3 1 给定这个类 public enum TestEnum
  • SharedPreferences 何时被删除?

    SharedPreferences 类允许以简单类型 布尔值 字符串等 格式保存应用程序数据 通常它们不会被删除 并且应该持续存在 但是在更新 删除应用程序或清除应用程序缓存等情况下它们是否会被删除 当你这样做时clear data从设备应
  • 使用 SqlBulkCopy 时如何检索服务器生成的标识值

    我知道我可以通过不指定身份列来批量插入到我的表中SqlBulkCopyOptions KeepIdentity如上所述here 我希望能够做的是获取服务器生成的标识值并将它们放入我的数据表 甚至列表中 我看见this发布 但我希望我的代码是
  • SQL Server 加入顺序

    我在输入中有 2 个字符串 例如 1 5 6 和 2 89 9 具有相同数量的元素 3 或以上 我想要的那两个字符串作为 纵坐标连接 1 2 5 89 6 9 我想分配一个行号并在 2 个结果集之间进行连接 SELECT a item b
  • 在 Java 中如何确定区域设置使用 12 小时还是 24 小时时间?

    在Java中 我只想打印一天中的时间 以小时和分钟为单位 并希望它根据区域设置在 13 00 和 1 00 PM 之间正确切换 我该怎么做呢 区域设置未明确指定首选 12 小时时间格式还是 24 小时时间格式 相反 区域设置特定的日期格式由
  • 将整数转换为 MIPS 中的双精度数

    我想将其中的两个值相除 tn寄存器 我必须将这两个值相除才能得到双倍结果 但是该函数div只返回该除法的整数部分有人可以帮忙吗 我需要转换吗 t1 and t2 to f0 and f2 我怎么做 li t1 2 li t2 5 div f
  • hbm.xml 中映射的属性可以是暂时的吗?

    假设我有一个User像这样的实体 class User private String login transient private String hashedPassword 我永远不想转移hashedPassword给客户 所以我把它变