Valor de cadena de Java MyBatis Enum

Siento que este es un problema simple, pero ninguna de las cosas que intenté funciona para mí. Tengo una enumeración, la razón por la que tengo un constructor de cadenas es porque Java no permite que la enumeración sea numérica ... Intenté AA, AB, 2C directamente sin el constructor de cadenas, pero eso da un error. Tenga en cuenta que para la enumeración existente estoy agregando C ("2C").

public enum TestEnum{
      AA("AA"), AB("AB"), C("2C");
      private String display;
    private TestEnum( String display ) {
          this.display = display;
       }
    public String toString() {
          return display;
       }
    public String getDisplay() {
          return display;
       }
    public void setDisplay( String display ) {
          this.display = display;
       }
     public String getName() {
          return display;
       }

Ahora tengo un mapeador mybatis que combina esto y uno de los parámetros del mapeador es TestEnum. Hasta ahora, esto funcionó bien ya que el valor de enumeración y el valor de cadena son los mismos, pero agregué C ("2C"). Ahora quiero insertar 2C en la tabla usando mybaits, pero siempre inserta C.

merge into text t
        using (select #{id} as id from dual) d on (d.id = t.id)
        when matched then
        update set
        appId = #{applId},
        src = #{testEnum}

testEnum inserta C, así que lo cambié a # {testEnum.toString ()}, lo que me dio un error de no obtener el nombre de propiedad toString (). Intenté # {testEnum.display} y # {testEnum.name} ambos todavía insertan C, mientras que quiero que inserte 2C. ¿Saben ustedes una forma más fácil de manejar esto?

No quiero cambiar el objeto modelo para pasar String en lugar de TestEnum porque este objeto se está utilizando en muchos lugares. ¿Hay alguna forma de que esto se pueda hacer en el mapeador mybatis sin cambiar el objeto modelo?

Gracias por tu ayuda :)

Respuesta 1

Me gustaría agregar algunas afirmaciones personalizadas a nuestra base de código que se esconden correctamente del seguimiento de fallas. Sé cómo escribir un método estático público que alguien pueda importar estáticamente. Sé reutilizar ...

He creado un juego de aplicaciones / applets de Java que debería guardar los niveles que el usuario puede crear en su máquina local. Digo applet / aplicación porque puede ejecutarse como una aplicación o como un applet ...

¿Por qué Hashmap usa internamente una LinkedList en lugar de una Arraylist cuando dos objetos se colocan en el mismo depósito en la tabla hash?

Tengo curiosidad, ya que he configurado pestañas Fragment en una FragmentActivity, cómo recargar un fragmento desde FragmentActivity o desde el Fragment mismo, para purgar y recargar esa pestaña. YO ...