En relación mybatis resultMap y muchos-a-muchos

Supongamos que hay dos mesas de ping-estudiante de magisterio y ejemplo de una estructura específica es la siguiente:
Aquí Insertar imagen Descripción
tid mesa de identificación del estudiante como una tabla de clave externa y los maestros estaban allí tan maravilloso vínculo entre los estudiantes y profesores de la asociación. Para los estudiantes, la relación entre ellos y el maestro debe ser muchos a uno corresponde a una relación más maestros de los estudiantes sino también para los profesores única relación entre ellos y los estudiantes debe ser el uno a muchos relación de un número correspondiente de los futuros profesores de pozos en ambos casos tuviéramos que explicar

Muchos a uno:
Diseñamos el tiempo de la clase entidad debe estar diseñado de manera que
clase de entidad estudiante
Los maestros de clase de entidad
la estructura desde el punto de vista de clase, definimos un miembro de un profesor de los estudiantes en la clase de entidad a fin de poner a los estudiantes y profesores de asociación es una de un par muchos relación entre estos y los resultados de nuestro análisis de la tabla de la base es la misma por lo que hemos diseñado es razonable.
Que cuando usamos la consulta SQL por mybatis qué resultados obtendremos lo que escribimos una declaración de SQL para consultar toda la información de los estudiantes

<select id="getAllStudent2" resultType="student">
        select * from student
    </select>

Pero el resultado devuelto es tal
Aquí Insertar imagen Descripción
que se presta atención a los atributos estudiante profesor de valor es nulo por eso, porque tenemos estudiante campos de la tabla de identificación, nombre, tres veces al día. Donde id y el nombre de la clase de entidad de identificación correspondiente y el nombre de la clase entidad que corresponde, pero la mesa de campo tres veces al día es atributos maestro y la clase de atributo varchar es de hecho una clase del profesor correspondiente a los dos de ellos no lo encuentra no lo hace la situación parece nula. En el análisis final es los nombres de atributos y nombres de columna en la tabla no se corresponde con la clase de entidad con el fin de interferencias causadas por ejemplo con el fin de resolver este problema es necesario llevar a cabo una resultMap mapeo de esta consulta se utiliza para resolver nuestro punto de vista este enfoque un SQL tales declaración

<select id="getAllStudent" resultMap="studentTeacher">
        select s.id sid,s.name sname,t.id tid,t.name tname
        from student s inner join teacher t on s.tid = t.id
    </select>

    <resultMap id="studentTeacher" type="student">
        <result property="id" column="sid"/>
        <result property="name" column="sname"/>
        <association property="teacher" javaType="teacher">
            <result column="tid" property="id"/>
            <result property="name" column="tname"/>
        </association>
    </resultMap>

Aquí se utiliza un tablas de consultas SQL en una consulta incluso maestro y estudiante tabla Identificación situación mesa tres veces al día es el mismo que el valor de la investigación profesor de la clase Estudiante propiedad. A continuación, utilizamos resultMap como una tabla de variables nombre de la columna y la clase de entidad inconsistencia nombre del campo correspondiente etiqueta resultMap asignación correspondiente Identificación del tipo de nombre resultMap seleccionamos medios de etiqueta que seleccionamos el tipo de retorno etiqueta
etiqueta resultMap etiqueta resultado se refiere al nombre de la columna de la tabla y el atributo de clase no coincide correspondiente operaciones de procesado de resultados de etiqueta de propiedad se refiere a una columna de clase nombre de propiedad se refiere a un nombres de columna tabla si no están de acuerdo entonces utilizamos resultado van a etiquetar el mapeo de tales inconsistencias nombre original se puede resolver a destacar aquí es que si la clase de entidad correspondiente al tipo de propiedad, pero no el tipo básico, a continuación, una referencia a un objeto (como nuestro caso ) Si la relación es mucho-utilizamos una asociación etiqueta de mapeo de su etiqueta de asociación sigue siendo el mismo nombre de atributo de clase de propiedad sugiere que es su nombre de tipo javaType Java y luego vamos a valor de este atributo en la etiqueta de la asociación esto podría ser mapeada Para hacer frente el nombre del campo clase de entidad en la tabla y las inconsistencias en la entidad comprende una clase de objetos. (Suena complicado necesidad de pensar cuidadosamente acerca)
De este modo podemos poner los futuros profesores correspondientes juntas de encontrar.
Aquí Insertar imagen Descripción
Este es el flujo del proceso de muchos-a-muchos las relaciones de parentesco y muchos de manejar casi por unanimidad no sólo por etiqueta asociación entidad de proceso de referencia objeto de la clase porque muchos de su entidad tipo de atributo de clase es un listado por lo que aquí usamos la etiqueta de colección

<select id="getAllTeacher" resultMap="teacherStudent">
        select t.id tid,t.name tname,s.id sid,s.name sname,s.tid stid
        from teacher t inner join student s on t.id = s.tid
    </select>
    <resultMap id="teacherStudent" type="teacher">
        <result property="id" column="tid"/>
        <result property="name" column="tname"/>
        <collection property="students" ofType="student">
            <result column="sid" property="id"/>
            <result column="sname" property="name"/>
            <result column="stid" property="tid"/>
        </collection>
    </resultMap>

etiqueta de recogida y asociación etiqueta no es el mismo lugar que él es OfType y la etiqueta de la asociación es javaType otros son casi Esto completa nuestro trabajo.
Aquí Insertar imagen Descripción

En cortos resultMap muchos casos el uso de etiquetas de recogida de etiquetas etiqueta de recogida de muchos de usar utilizados en tipos definidos asociación OfType y uso de la etiqueta asociación javaType define tipos.

Publicado 53 artículos originales · ganado elogios 0 · Vistas 1962

Supongo que te gusta

Origin blog.csdn.net/XXuan_/article/details/104087144
Recomendado
Clasificación