我的情况如下所示,其中,我有下面的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;
}
}
现在我的问题是我们有一些数据是从其他流填充的,但它的值仍为null。但是,当尝试使用JPA方法获取报告以获取所有FRUIT_IND为false的记录时,它却无法获取任何记录(这是可以预期的,因为大多数FRUIT_IND由于数据已迁移而为null)。
我可以通过任何方式修改此转换器以相同的方式获取具有null或'N'的记录吗?或者在休眠结束时是否有任何方法可以将null和'N'视为一个相同的对象。
先谢谢了:)
答案 0 :(得分:0)
我从您的问题中了解到的是,您希望从JPA的FRUIT_IND为null或N的数据库中获取结果。
为此,您可以在存储库中定义一个方法来扩展JPARepository。
returnType findAllByFruit_ind(String fruit_ind);
要记住的事情-在方法名称fruit_Ind应该与实体类中的名称相同。