代码之家  ›  专栏  ›  技术社区  ›  osama yaccoub

将参数传递给jpa转换器

  •  2
  • osama yaccoub  · 技术社区  · 4 年前

    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;
    

    1 回复  |  直到 4 年前
        1
  •  1
  •   René Link    4 年前

    我想传递一些东西(类类型/一些参数/etc)给转换器,以便能够定义

    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 接口不传递 Field ( AnnotatedElement )这是转换。因此,您无法创建自己的注释并查找此注释。