gpt4 book ai didi

java - 如何在Spring Boot中从实体类调用基于服务的类

转载 作者:行者123 更新时间:2023-11-30 05:23:44 31 4
gpt4 key购买 nike

这是我的 Multi-Tenancy 项目的实体类

@Entity
public class Customer {
private String uniqueCustomerId;
private String firstName;
private String lastName;

@Convert(converter = CryptoConverter.class)
private String mobile;
private String mobileShavalue;
}

在我的 CryptoConverter.java 中,我正在检查是否必须根据 CryptoConverter.java 中编写的配置和加密逻辑加密此属性。另外,如果配置告诉我必须加密移动属性,那么在这种情况下我还必须存储属性 mobileShavalue 的 sha 值(配置中的 sha1 或 sha2)。

为了实现这一目标,我想到了一件事,那就是通过在我的实体类中使用 @PrePersist 并再次从 PrePersist 方法获取配置来验证我是否必须存储移动 sha 值并在那里编写 shavalue 逻辑。

但是当我这样做时,我遇到了以下错误

@Autowired
EncryptionConfigService encryptionConfigService;

@PrePersist
private void doSomeCode(){
encryptionConfigService.callNewMethod();
}

Caused by: org.hibernate.MappingException: Could not determine type for: com.loylty.tms.service.EncryptionConfigService, at table: Customer, for columns: [org.hibernate.mapping.Column(encryption_config_service)]

最佳答案

使用@Transient注释 Autowiring 的服务,使ORM在序列化过程中忽略它

@Transient
@Autowired
EncryptionConfigService encryptionConfigService;

@PrePersist
private void doSomeCode(){
encryptionConfigService.callNewMethod();
}

关于java - 如何在Spring Boot中从实体类调用基于服务的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59067687/

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