gpt4 book ai didi

java - 如何将 false boolean 值作为 null 或 'N' 从属性转换器发送到数据库

转载 作者:行者123 更新时间:2023-12-02 01:10:29 25 4
gpt4 key购买 nike

我的场景如下所示,其中,我有如下所示的 AttributeConverter,它映射到指示符列,假设 FRUIT_IND 可以包含值 null、'Y' 或 'N'

import javax.persistence.AttributeConverter;
import javax.persistence.Converter;

@Converter
public class BooleanToCharAttributeConverter implements AttributeConverter<Boolean, Character> {

它有一个convertToDatabaseColumn方法,将true/false作为输入并检查数据库中的列值。

@Override
public Character convertToDatabaseColumn(Boolean booleanValue) {

if (booleanValue) {
return 'Y';
} else {
return 'N';
}
}
@Override
public Boolean convertToEntityAttribute(Character charEntered) {

if (Objects.nonNull(charEntered)) {
if(Character.valueOf('Y').equals(charEntered)) {
return true;
}else {
return false;
}

} else {
return false;
}
}

现在我的问题是我们有一些从其他流填充的数据,但它的值仍然为空。但是,当尝试使用 JPA 方法获取报告以获取 FRUIT_IND 为 false 的所有记录时,无法获取任何记录(这是预期的,因为由于迁移数据,大多数 FRUIT_IND 为空)..

我可以修改此转换器以以相同的方式获取具有 null 或“N”的记录吗?或者有什么方法可以在 hibernate 结束时将 null 和 'N' 视为同一个。

提前致谢:)

最佳答案

我从你的问题中了解到,你想从数据库中获取结果,其中 FRUIT_IND 为 null 或 JPA 为 N。

为此,您可以在存储库中定义一个扩展 JPARepository 的方法。

returnType findAllByFruit_ind(String fruit_ind);

要记住的事情 - 方法名称中的fruit_Ind 应与实体类中的名称相同。

关于java - 如何将 false boolean 值作为 null 或 'N' 从属性转换器发送到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57690549/

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