Closed raccoonback closed 4 years ago
Optional<List
> findAllByRoomId(Long id); List messages = messageRepository.findAllByRoomId(id).get();
select message0_.id as id1_0_,
message0_.contents as contents2_0_,
message0_.created_at as created_3_0_,
message0_.message_type as message_4_0_,
message0_.room_id as room_id5_0_
from message message0_
left outer join room room1_ on message0_.room_id = room1_.id
where room1_.id = 1;
select room0_.id as id1_1_0_, room0_.title as title2_1_0_
from room room0_
where room0_.id = 1;
List
messages = roomRepository.findById(id).get().getMessages()
select room0_.id as id1_1_0_, room0_.title as title2_1_0_
from room room0_
where room0_.id = 1;
select messages0_.room_id as room_id5_0_0_,
messages0_.id as id1_0_0_,
messages0_.id as id1_0_1_,
messages0_.contents as contents2_0_1_,
messages0_.created_at as created_3_0_1_,
messages0_.message_type as message_4_0_1_
from message messages0_
where messages0_.room_id = 1;
select room0_.id as id1_1_0_, room0_.title as title2_1_0_
from room room0_
where room0_.id = 1;
insert into message (contents, created_at, message_type, room_id)
values (?, ?, ?, ?);
select room0_.id as id1_1_0_, room0_.title as title2_1_0_
from room room0_
where room0_.id = 1;
select messages0_.room_id as room_id5_0_0_,
messages0_.id as id1_0_0_,
messages0_.id as id1_0_1_,
messages0_.contents as contents2_0_1_,
messages0_.created_at as created_3_0_1_,
messages0_.message_type as message_4_0_1_
from message messages0_
where messages0_.room_id = 1;
insert into message (contents, created_at, message_type)
values (?, ?, ?);
update message
set room_id=?
where id = ?;
위 경우에서 Optional을 꼭 써야할까?
List<T>
의 경우 list.isEmpty()
로 대체 가능list.empty()
로 체크 가능List messages = messageRepository.findAllByRoomId(id).get()
에서 이미 Optional이 empty임을 가정하지 않고 있음. 그렇다면 Optional이 꼭 필요한가?@KeonHee
조회된 값이 없으면 빈 리스트로 반환해주는구나 👍 👍 null 반환하는줄 알았어..;
messageRepository.findAllByRoomId(id).get()
요거는 테스트용으로 해본거라서.. empty까지 고려 안했어ㅜ 뜨허 🙀
JPA 어렵다아아
🥤 추가 기능
☕ ps
Add any other context or screenshots about the feature request here.