0
나는 다음과 같은 테이블이 : 나는 그의 모든 친구들과 사용자를 선택합니다의 MyBatis 컬렉션 속성
CREATE TABLE users (
id VARCHAR (255) NOT NULL,
name VARCHAR (255) NOT NULL,
create_date TIMESTAMP NOT NULL,
email VARCHAR (255) NOT NULL,
password VARCHAR (255) NOT NULL,
last_visit TIMESTAMP,
avatar_id VARCHAR (255)
);
CREATE TABLE user_friends (
user_id VARCHAR (255) NOT NULL,
friend_id VARCHAR (255) NOT NULL
);
CREATE TABLE file (
id VARCHAR (255) NOT NULL,
file_path VARCHAR (255) NOT NULL,
create_date TIMESTAMP NOT NULL,
user_id VARCHAR (255) NOT NULL
);
를, 그래서 내가 선택 실행하려고했습니다
<sql id="coreUserAttributes">
users.id,
users.name,
users.last_visit as lastVisit
</sql>
<select id="getUser" resultMap="UserRM">
SELECT
<include refid="coreUserAttributes"/>,
f.id as friendId,
f.name as friendName
FROM users
LEFT JOIN user_friends ON users.id = user_friends.user_id
LEFT JOIN users f ON f.id = user_friends.friend_id
<where>
users.id = #{id}
</where>
</select>
매퍼를 만들었어요 - 그건 어떤 문제없이 일해. 내가 <collection>
태그없이 된 resultMap을 삽입하면 문제가 된 resultMap
에 모든 것이 잘 작동하고 매퍼 내 사용자 개체
<resultMap id="UserRM" type="User">
<id column="id"/>
</resultMap>
반환하지만 <collection>
태그
<resultMap id="UserRM" type="User">
<id column="id"/>
<collection property="friends" ofType="User" javaType="ArrayList">
<id column="friendId"/>
<result column="friendName" property="name"/>
</collection>
</resultMap>
를 삽입 할 때 매퍼 호출의 결과는 null입니다. 콘솔에 오류가 표시되지 않습니다. 친구들과 함께 사용자를로드하려면 어떻게해야합니까?
P.S 또한, 흥미로운 무엇인지, 내가 로그
2017-01-03 22:29:19 DEBUG u.s.network.query.UserMapper.getUser - ==> Preparing: SELECT users.id, users.name, users.last_visit as lastVisit , f.id as friendId, f.name as friendName FROM users LEFT JOIN user_friends ON users.id = user_friends.user_id LEFT JOIN users f ON f.id = user_friends.friend_id WHERE users.id = ?
2017-01-03 22:29:19 DEBUG u.s.network.query.UserMapper.getUser - ==> Preparing: SELECT users.id, users.name, users.last_visit as lastVisit , f.id as friendId, f.name as friendName FROM users LEFT JOIN user_friends ON users.id = user_friends.user_id LEFT JOIN users f ON f.id = user_friends.friend_id WHERE users.id = ?
2017-01-03 22:29:19 DEBUG u.s.network.query.UserMapper.getUser - ==> Parameters: 1(String)
2017-01-03 22:29:19 DEBUG u.s.network.query.UserMapper.getUser - ==> Parameters: 1(String)
2017-01-03 22:29:19 DEBUG u.s.network.query.UserMapper.getUser - <== Total: 1
2017-01-03 22:29:19 DEBUG u.s.network.query.UserMapper.getUser - <== Total: 1
MyBatis로 개체를 빌드 할 때 지금까지 내가 이해, 선택의 작품 일반적으로하지만, 일부 문제는 장소가있다
에 다음 텍스트를 참조하십시오.