gpt4 book ai didi

java - 将参数传递给 jpa 转换器

转载 作者:行者123 更新时间:2023-12-05 06:11:38 27 4
gpt4 key购买 nike

我正在尝试编写一个通用的 Converter 以在我的代码中的多个类似情况下使用。我有一组子类,我只想使用一个 Converter 来处理,所以我想将一些东西(类类型/一些参数/等)传递给 Converter能够定义

public class GenericConverter implements AttributeConverter<MyGenericClass , Integer> {
.
.
.
public MyGenericClass convertToEntityAttribute(Integer arg0) {
// return a certain sub class here according to an attribute / an initialization method / etc
}

在实体中:

@Convert( converter = GenericConverter.class \*pass something here\* )
protected SubClass1 var1;

@Convert( converter = GenericConverter.class \*pass something here\* )
protected SubClass2 var2;

@Convert( converter = GenericConverter.class, \*pass something here\* )
protected SubClass3 var3;

这是否可行?

最佳答案

I want to pass something (class type / some parameter / etc) to the Converter to be able to define

我看到的唯一方法是使 GenericConverter 抽象,定义一个带有您要修改的参数的构造函数

public abstract GenericConverter {

protected GenericConverter(Class<?> type, String someParameter, Object etc){
....
}
}

创建子类并传递参数。

public class SubClass1Converter extends GenericConverter {

public SubClass1Converter(){
super(SubClass1.class, "someValue", ....);
}
}

然后你就可以使用@Convert中的子类了。

@Convert(converter = SubClass1Converter.class)

AttributeConverter 以来,我没有看到其他好的选择接口(interface)没有传递给你 Field ( AnnotatedElement ) 已转换。因此,您无法创建自己的注释并查找此注释。

关于java - 将参数传递给 jpa 转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63912901/

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