gpt4 book ai didi

java - JPA的AttributeConverter和Hibernate的ColumnTransformer在属性加解密方面的区别

转载 作者:行者123 更新时间:2023-11-30 06:16:42 30 4
gpt4 key购买 nike

我有一个数据库,其中有一些带有加密列的表。到目前为止,所有这些列都是字符串类型。我正在使用 JPA 的 @Converter 来加密和解密表中的列。不过,我也知道,我可以使用 Hibernate 的 @ColumnTransformer 来实现读写操作时加密和解密的相同目的。我的问题是它们有何不同,在速度、可维护性、 future 增强等方面哪种方法更好?现在,@Converter 可以很好地处理字符串类型的数据。我不确定它是否适用于整数类型,否则我将不得不创建一个新的转换器类。

最佳答案

它们非常相似,并且在许多情况下可用于完全相同的事情,但解决方案的实现略有不同。

一个主要区别是一个是 Hibernate 特定的,另一个是 JPA 规范的一部分。如果您想编写符合规范的代码,请使用 @Converter,您将能够在您的代码中使用 Hibernate 之外的其他实现。

另一个主要区别是 @ColumnTransformer 在数据库级别操作,而 @Converter 按原样从数据库读取值,然后将其转换为应用程序上的其他内容边。当数据库执行某些操作时,这可能会为 @ColumnTransformer 提供性能优势。

此外,您实际上可以创建一个 AttributeConverter applies automatically给定类型的所有值。例如,在您不想在许多地方手动添加 @Converter 注释的重构情况下,这可能是有利的。

所以它们都可以用来执行类似的事情,并且没有一个隐含地比另一个更好

关于java - JPA的AttributeConverter和Hibernate的ColumnTransformer在属性加解密方面的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49046265/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com