programing

batis 컬렉션 열의 매개 변수에 문자열만 전달하려면 어떻게 해야 합니까?

closeapi 2023. 9. 13. 22:37
반응형

batis 컬렉션 열의 매개 변수에 문자열만 전달하려면 어떻게 해야 합니까?

저는 봄에 MyBatis와 MariaDB의 sql 쿼리를 만들었습니다.

이것은 내가 실패한 마이바티스 코드입니다.

<resultMap type="Member" id="memberMap">
    <result property="uid" column="uid" />
    <result property="id" column="id" />
    <result property="name" column="name" />
    <collection property="privacyList" column="{ mid = uid, type = 'phone'}" ofType="MemPhone" select="getPrivacyList" />
</resultMap>

<resultMap type="MemPrivacy" id="memPrivacyMap">
    <result property="uid" column="uid" />
    <result property="mid" column="mid" />
    <result property="type" column="type" />
    <result property="name" column="name" />
    <result property="content" column="content" />
    <result property="sort" column="sort" />
</resultMap>

<select id="getMemberList" resultMap="memberMap">
    select * from `member`
</select>

<select id="getPrivacyList" resultMap="memPrivacyMap" parameterType="map">
    select *
    from `mem_privacy`
    where `mid` = #{ mid } and `type` = #{ type }
</select>

열은 4행의 문자열이 아니라 열로 정의되어야 하기 때문입니다.

그래서 저는 이것을 아래와 같은 코드로 변경했습니다.

select *, 'phone' as `type_phone`
from `mem_privacy`
where `mid` = #{ mid } and `type` = #{ type }

<collection property="privacyList" column="{ mid = uid, type = type_phone }" ofType="MemPhone" select="getPrivacyList" />

문자열 값을 열로 선택하여 열을 수집하는 데 사용합니다.

변경된 코드는 잘 실행되었습니다.

하지만 저는 거기에 끈만 사용하는 걸 좋아해요.

이거 어떻게 해요?

누가 좀 도와주세요~~

당신의resultMap라는 이름으로memberMap, 당신은 내 바티스에게 '구축'하라고 말해요collection위해서Member#privacyList가 말하는 선택을 통해서select="getPrivacyList"

column-content - 선언된 열의 내용을 매개 변수로 참조된 선택 항목에 전달합니다.

당신의 경우 ()column="{ mid = uid, type = type_phone }") 매개변수명 mid로 column uid의 내용과 매개변수명으로 column type_phone의 내용입니다.해당 내용은 다음과 같이 이용할 수 있습니다.#{mid}/${mid}그리고.#{type}/${type}당신의 '하원'에서.

select-statement에 지정된 문자열을 전달하려면 열을 추가해야 합니다.getMemberList-선택문

SELECT member.*, 'phone' AS desired_type FROM MEMBER

이제 'column="{ mid = uid, desired_type = desired_type}"을 통해 이 열 내용, 즉 String을 하위 문서로 전달할 수 있습니다.

다음과 같이 sql 또는 데이터베이스 키워드를 사용하지 말 것을 제안합니다.type, 난명의 경우

언급URL : https://stackoverflow.com/questions/57414113/how-can-i-pass-just-string-to-parameter-in-mybatis-collection-column

반응형