🔍 FindAll() - 쿼리 분석🧨 Member 다중 조회 건🐶 Fetch - Lazy 속성을 주는건 어떨까요?🤔 PostLike, PostImage Join건👾PostLike Count건🐶 Lazy 속성인데, 아니 왜 Join 되죠…?
🔍 FindAll() - 쿼리 분석
: 쿼리를 분석 했을 때, 문제가 발생해서 조정하려고 합니다.
결과
{ "response": [ { "content": "p-content01", "member": { "id": 1, "username": "test00", "name": "00", "email": "test00@gmail.com", "phoneNumber": "1234" }, "postImageResponse": [], "commentResponse": [ { "id": 1, "content": "c-content01", "member": { "id": 2, "username": "test01", "name": "01", "email": "test01@gmail.com", "phoneNumber": "5678" } }, { "id": 2, "content": "c-content02", "member": { "id": 3, "username": "test02", "name": "02", "email": "test02@gmail.com", "phoneNumber": "9012" } }, { "id": 3, "content": "c-content03", "member": { "id": 4, "username": "test03", "name": "03", "email": "test03@gmail.com", "phoneNumber": "3456" } } ], "postLikeResponse": [ { "id": 1, "memberResponse": { "id": 2, "username": "test01", "name": "01", "email": "test01@gmail.com", "phoneNumber": "5678" } }, { "id": 2, "memberResponse": { "id": 3, "username": "test02", "name": "02", "email": "test02@gmail.com", "phoneNumber": "9012" } }, { "id": 3, "memberResponse": { "id": 4, "username": "test03", "name": "03", "email": "test03@gmail.com", "phoneNumber": "3456" } }, { "id": 4, "memberResponse": { "id": 5, "username": "test04", "name": "04", "email": "test04@gmail.com", "phoneNumber": "7890" } } ], "totalPostLike": 4 }, { "content": "p-content02", "member": { "id": 1, "username": "test00", "name": "00", "email": "test00@gmail.com", "phoneNumber": "1234" }, "postImageResponse": [], "commentResponse": [], "postLikeResponse": [], "totalPostLike": 0 }, { "content": "p-content03", "member": { "id": 1, "username": "test00", "name": "00", "email": "test00@gmail.com", "phoneNumber": "1234" }, "postImageResponse": [], "commentResponse": [ { "id": 4, "content": "c-content03", "member": { "id": 5, "username": "test04", "name": "04", "email": "test04@gmail.com", "phoneNumber": "7890" } } ], "postLikeResponse": [ { "id": 5, "memberResponse": { "id": 1, "username": "test00", "name": "00", "email": "test00@gmail.com", "phoneNumber": "1234" } }, { "id": 6, "memberResponse": { "id": 4, "username": "test03", "name": "03", "email": "test03@gmail.com", "phoneNumber": "3456" } } ], "totalPostLike": 2 }, { "content": "p-content04", "member": { "id": 1, "username": "test00", "name": "00", "email": "test00@gmail.com", "phoneNumber": "1234" }, "postImageResponse": [], "commentResponse": [], "postLikeResponse": [], "totalPostLike": 0 }, { "content": "p-content05", "member": { "id": 1, "username": "test00", "name": "00", "email": "test00@gmail.com", "phoneNumber": "1234" }, "postImageResponse": [], "commentResponse": [], "postLikeResponse": [], "totalPostLike": 0 } ] }
로그 내역
2022-06-19 19:36:06.622 WARN 51925 --- [io-8080-exec-10] c.k.i.s.jwt.JwtAuthenticationFilter :84 : accessToken not found Hibernate: select post0_.id as id1_4_, post0_.content as content2_4_, post0_.member_id as member_i3_4_ from post post0_ where post0_.member_id in ( ? , ? , ? ) 2022-06-19 19:36:06.629 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [1] 2022-06-19 19:36:06.629 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [2] as [BIGINT] - [2] 2022-06-19 19:36:06.629 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [3] as [BIGINT] - [3] 2022-06-19 19:36:06.631 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([id1_4_] : [BIGINT]) - [1] 2022-06-19 19:36:06.631 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([content2_4_] : [VARCHAR]) - [p-content01] 2022-06-19 19:36:06.631 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([member_i3_4_] : [BIGINT]) - [1] 2022-06-19 19:36:06.632 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([id1_4_] : [BIGINT]) - [2] 2022-06-19 19:36:06.632 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([content2_4_] : [VARCHAR]) - [p-content02] 2022-06-19 19:36:06.632 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([member_i3_4_] : [BIGINT]) - [1] 2022-06-19 19:36:06.632 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([id1_4_] : [BIGINT]) - [3] 2022-06-19 19:36:06.632 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([content2_4_] : [VARCHAR]) - [p-content03] 2022-06-19 19:36:06.632 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([member_i3_4_] : [BIGINT]) - [2] 2022-06-19 19:36:06.633 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([id1_4_] : [BIGINT]) - [4] 2022-06-19 19:36:06.633 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([content2_4_] : [VARCHAR]) - [p-content04] 2022-06-19 19:36:06.633 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([member_i3_4_] : [BIGINT]) - [2] 2022-06-19 19:36:06.633 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([id1_4_] : [BIGINT]) - [5] 2022-06-19 19:36:06.633 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([content2_4_] : [VARCHAR]) - [p-content05] 2022-06-19 19:36:06.633 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([member_i3_4_] : [BIGINT]) - [3] Hibernate: select member0_.id as id1_3_0_, member0_.email as email2_3_0_, member0_.name as name3_3_0_, member0_.password as password4_3_0_, member0_.phone_number as phone_nu5_3_0_, member0_.username as username6_3_0_ from member member0_ where member0_.id=? 2022-06-19 19:36:06.634 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [1] 2022-06-19 19:36:06.635 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([email2_3_0_] : [VARCHAR]) - [test00@gmail.com] 2022-06-19 19:36:06.635 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([name3_3_0_] : [VARCHAR]) - [00] 2022-06-19 19:36:06.636 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :50 : extracted value ([password4_3_0_] : [VARCHAR]) - [null] 2022-06-19 19:36:06.636 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([phone_nu5_3_0_] : [VARCHAR]) - [1234] 2022-06-19 19:36:06.636 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([username6_3_0_] : [VARCHAR]) - [test00] Hibernate: select member0_.id as id1_3_0_, member0_.email as email2_3_0_, member0_.name as name3_3_0_, member0_.password as password4_3_0_, member0_.phone_number as phone_nu5_3_0_, member0_.username as username6_3_0_ from member member0_ where member0_.id=? 2022-06-19 19:36:06.637 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [2] 2022-06-19 19:36:06.639 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([email2_3_0_] : [VARCHAR]) - [test01@gmail.com] 2022-06-19 19:36:06.639 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([name3_3_0_] : [VARCHAR]) - [01] 2022-06-19 19:36:06.639 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :50 : extracted value ([password4_3_0_] : [VARCHAR]) - [null] 2022-06-19 19:36:06.640 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([phone_nu5_3_0_] : [VARCHAR]) - [5678] 2022-06-19 19:36:06.640 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([username6_3_0_] : [VARCHAR]) - [test01] Hibernate: select member0_.id as id1_3_0_, member0_.email as email2_3_0_, member0_.name as name3_3_0_, member0_.password as password4_3_0_, member0_.phone_number as phone_nu5_3_0_, member0_.username as username6_3_0_ from member member0_ where member0_.id=? 2022-06-19 19:36:06.642 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [3] 2022-06-19 19:36:06.646 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([email2_3_0_] : [VARCHAR]) - [test02@gmail.com] 2022-06-19 19:36:06.647 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([name3_3_0_] : [VARCHAR]) - [02] 2022-06-19 19:36:06.647 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :50 : extracted value ([password4_3_0_] : [VARCHAR]) - [null] 2022-06-19 19:36:06.647 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([phone_nu5_3_0_] : [VARCHAR]) - [9012] 2022-06-19 19:36:06.647 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([username6_3_0_] : [VARCHAR]) - [test02] Hibernate: select postimage0_.id as id1_5_, postimage0_.original_file_name as original2_5_, postimage0_.path as path3_5_, postimage0_.post_id as post_id6_5_, postimage0_.server_file_name as server_f4_5_, postimage0_.size as size5_5_ from post_image postimage0_ left outer join post post1_ on postimage0_.post_id=post1_.id where post1_.id=? 2022-06-19 19:36:06.649 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [1] Hibernate: select comment0_.id as id1_0_0_, member1_.id as id1_3_1_, comment0_.content as content2_0_0_, comment0_.member_id as member_i3_0_0_, comment0_.post_id as post_id4_0_0_, member1_.email as email2_3_1_, member1_.name as name3_3_1_, member1_.password as password4_3_1_, member1_.phone_number as phone_nu5_3_1_, member1_.username as username6_3_1_ from comment comment0_ inner join member member1_ on comment0_.member_id=member1_.id where comment0_.post_id=? 2022-06-19 19:36:06.651 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [1] 2022-06-19 19:36:06.652 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([id1_0_0_] : [BIGINT]) - [1] 2022-06-19 19:36:06.652 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([id1_3_1_] : [BIGINT]) - [2] 2022-06-19 19:36:06.653 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([content2_0_0_] : [VARCHAR]) - [c-content01] 2022-06-19 19:36:06.653 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([member_i3_0_0_] : [BIGINT]) - [2] 2022-06-19 19:36:06.653 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([post_id4_0_0_] : [BIGINT]) - [1] 2022-06-19 19:36:06.653 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([id1_0_0_] : [BIGINT]) - [2] 2022-06-19 19:36:06.653 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([id1_3_1_] : [BIGINT]) - [3] 2022-06-19 19:36:06.654 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([content2_0_0_] : [VARCHAR]) - [c-content02] 2022-06-19 19:36:06.654 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([member_i3_0_0_] : [BIGINT]) - [3] 2022-06-19 19:36:06.654 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([post_id4_0_0_] : [BIGINT]) - [1] 2022-06-19 19:36:06.654 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([id1_0_0_] : [BIGINT]) - [3] 2022-06-19 19:36:06.654 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([id1_3_1_] : [BIGINT]) - [4] 2022-06-19 19:36:06.655 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([content2_0_0_] : [VARCHAR]) - [c-content03] 2022-06-19 19:36:06.655 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([member_i3_0_0_] : [BIGINT]) - [4] 2022-06-19 19:36:06.655 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([post_id4_0_0_] : [BIGINT]) - [1] 2022-06-19 19:36:06.655 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([email2_3_1_] : [VARCHAR]) - [test03@gmail.com] 2022-06-19 19:36:06.656 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([name3_3_1_] : [VARCHAR]) - [03] 2022-06-19 19:36:06.656 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :50 : extracted value ([password4_3_1_] : [VARCHAR]) - [null] 2022-06-19 19:36:06.665 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([phone_nu5_3_1_] : [VARCHAR]) - [3456] 2022-06-19 19:36:06.665 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([username6_3_1_] : [VARCHAR]) - [test03] Hibernate: select postlike0_.id as id1_6_, postlike0_.member_id as member_i2_6_, postlike0_.post_id as post_id3_6_ from post_like postlike0_ left outer join post post1_ on postlike0_.post_id=post1_.id where post1_.id=? 2022-06-19 19:36:06.666 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [1] 2022-06-19 19:36:06.667 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([id1_6_] : [BIGINT]) - [1] 2022-06-19 19:36:06.667 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([member_i2_6_] : [BIGINT]) - [2] 2022-06-19 19:36:06.667 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([post_id3_6_] : [BIGINT]) - [1] 2022-06-19 19:36:06.667 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([id1_6_] : [BIGINT]) - [2] 2022-06-19 19:36:06.667 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([member_i2_6_] : [BIGINT]) - [3] 2022-06-19 19:36:06.667 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([post_id3_6_] : [BIGINT]) - [1] 2022-06-19 19:36:06.668 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([id1_6_] : [BIGINT]) - [3] 2022-06-19 19:36:06.668 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([member_i2_6_] : [BIGINT]) - [4] 2022-06-19 19:36:06.668 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([post_id3_6_] : [BIGINT]) - [1] 2022-06-19 19:36:06.668 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([id1_6_] : [BIGINT]) - [4] 2022-06-19 19:36:06.668 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([member_i2_6_] : [BIGINT]) - [5] 2022-06-19 19:36:06.668 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([post_id3_6_] : [BIGINT]) - [1] Hibernate: select member0_.id as id1_3_0_, member0_.email as email2_3_0_, member0_.name as name3_3_0_, member0_.password as password4_3_0_, member0_.phone_number as phone_nu5_3_0_, member0_.username as username6_3_0_ from member member0_ where member0_.id=? 2022-06-19 19:36:06.669 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [5] 2022-06-19 19:36:06.670 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([email2_3_0_] : [VARCHAR]) - [test04@gmail.com] 2022-06-19 19:36:06.670 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([name3_3_0_] : [VARCHAR]) - [04] 2022-06-19 19:36:06.670 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :50 : extracted value ([password4_3_0_] : [VARCHAR]) - [null] 2022-06-19 19:36:06.670 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([phone_nu5_3_0_] : [VARCHAR]) - [7890] 2022-06-19 19:36:06.671 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([username6_3_0_] : [VARCHAR]) - [test04] Hibernate: select count(postlike0_.id) as col_0_0_ from post_like postlike0_ left outer join post post1_ on postlike0_.post_id=post1_.id where post1_.id=? 2022-06-19 19:36:06.671 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [1] 2022-06-19 19:36:06.672 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([col_0_0_] : [BIGINT]) - [4] Hibernate: select postimage0_.id as id1_5_, postimage0_.original_file_name as original2_5_, postimage0_.path as path3_5_, postimage0_.post_id as post_id6_5_, postimage0_.server_file_name as server_f4_5_, postimage0_.size as size5_5_ from post_image postimage0_ left outer join post post1_ on postimage0_.post_id=post1_.id where post1_.id=? 2022-06-19 19:36:06.673 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [2] Hibernate: select comment0_.id as id1_0_0_, member1_.id as id1_3_1_, comment0_.content as content2_0_0_, comment0_.member_id as member_i3_0_0_, comment0_.post_id as post_id4_0_0_, member1_.email as email2_3_1_, member1_.name as name3_3_1_, member1_.password as password4_3_1_, member1_.phone_number as phone_nu5_3_1_, member1_.username as username6_3_1_ from comment comment0_ inner join member member1_ on comment0_.member_id=member1_.id where comment0_.post_id=? 2022-06-19 19:36:06.674 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [2] Hibernate: select postlike0_.id as id1_6_, postlike0_.member_id as member_i2_6_, postlike0_.post_id as post_id3_6_ from post_like postlike0_ left outer join post post1_ on postlike0_.post_id=post1_.id where post1_.id=? 2022-06-19 19:36:06.676 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [2] Hibernate: select count(postlike0_.id) as col_0_0_ from post_like postlike0_ left outer join post post1_ on postlike0_.post_id=post1_.id where post1_.id=? 2022-06-19 19:36:06.677 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [2] 2022-06-19 19:36:06.677 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([col_0_0_] : [BIGINT]) - [0] Hibernate: select postimage0_.id as id1_5_, postimage0_.original_file_name as original2_5_, postimage0_.path as path3_5_, postimage0_.post_id as post_id6_5_, postimage0_.server_file_name as server_f4_5_, postimage0_.size as size5_5_ from post_image postimage0_ left outer join post post1_ on postimage0_.post_id=post1_.id where post1_.id=? 2022-06-19 19:36:06.678 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [3] Hibernate: select comment0_.id as id1_0_0_, member1_.id as id1_3_1_, comment0_.content as content2_0_0_, comment0_.member_id as member_i3_0_0_, comment0_.post_id as post_id4_0_0_, member1_.email as email2_3_1_, member1_.name as name3_3_1_, member1_.password as password4_3_1_, member1_.phone_number as phone_nu5_3_1_, member1_.username as username6_3_1_ from comment comment0_ inner join member member1_ on comment0_.member_id=member1_.id where comment0_.post_id=? 2022-06-19 19:36:06.679 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [3] 2022-06-19 19:36:06.680 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([id1_0_0_] : [BIGINT]) - [4] 2022-06-19 19:36:06.680 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([id1_3_1_] : [BIGINT]) - [5] 2022-06-19 19:36:06.680 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([content2_0_0_] : [VARCHAR]) - [c-content03] 2022-06-19 19:36:06.680 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([member_i3_0_0_] : [BIGINT]) - [5] 2022-06-19 19:36:06.680 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([post_id4_0_0_] : [BIGINT]) - [3] Hibernate: select postlike0_.id as id1_6_, postlike0_.member_id as member_i2_6_, postlike0_.post_id as post_id3_6_ from post_like postlike0_ left outer join post post1_ on postlike0_.post_id=post1_.id where post1_.id=? 2022-06-19 19:36:06.681 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [3] 2022-06-19 19:36:06.681 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([id1_6_] : [BIGINT]) - [5] 2022-06-19 19:36:06.681 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([member_i2_6_] : [BIGINT]) - [1] 2022-06-19 19:36:06.681 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([post_id3_6_] : [BIGINT]) - [3] 2022-06-19 19:36:06.681 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([id1_6_] : [BIGINT]) - [6] 2022-06-19 19:36:06.681 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([member_i2_6_] : [BIGINT]) - [4] 2022-06-19 19:36:06.681 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([post_id3_6_] : [BIGINT]) - [3] Hibernate: select count(postlike0_.id) as col_0_0_ from post_like postlike0_ left outer join post post1_ on postlike0_.post_id=post1_.id where post1_.id=? 2022-06-19 19:36:06.682 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [3] 2022-06-19 19:36:06.682 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([col_0_0_] : [BIGINT]) - [2] Hibernate: select postimage0_.id as id1_5_, postimage0_.original_file_name as original2_5_, postimage0_.path as path3_5_, postimage0_.post_id as post_id6_5_, postimage0_.server_file_name as server_f4_5_, postimage0_.size as size5_5_ from post_image postimage0_ left outer join post post1_ on postimage0_.post_id=post1_.id where post1_.id=? 2022-06-19 19:36:06.683 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [4] Hibernate: select comment0_.id as id1_0_0_, member1_.id as id1_3_1_, comment0_.content as content2_0_0_, comment0_.member_id as member_i3_0_0_, comment0_.post_id as post_id4_0_0_, member1_.email as email2_3_1_, member1_.name as name3_3_1_, member1_.password as password4_3_1_, member1_.phone_number as phone_nu5_3_1_, member1_.username as username6_3_1_ from comment comment0_ inner join member member1_ on comment0_.member_id=member1_.id where comment0_.post_id=? 2022-06-19 19:36:06.684 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [4] Hibernate: select postlike0_.id as id1_6_, postlike0_.member_id as member_i2_6_, postlike0_.post_id as post_id3_6_ from post_like postlike0_ left outer join post post1_ on postlike0_.post_id=post1_.id where post1_.id=? 2022-06-19 19:36:06.685 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [4] Hibernate: select count(postlike0_.id) as col_0_0_ from post_like postlike0_ left outer join post post1_ on postlike0_.post_id=post1_.id where post1_.id=? 2022-06-19 19:36:06.685 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [4] 2022-06-19 19:36:06.686 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([col_0_0_] : [BIGINT]) - [0] Hibernate: select postimage0_.id as id1_5_, postimage0_.original_file_name as original2_5_, postimage0_.path as path3_5_, postimage0_.post_id as post_id6_5_, postimage0_.server_file_name as server_f4_5_, postimage0_.size as size5_5_ from post_image postimage0_ left outer join post post1_ on postimage0_.post_id=post1_.id where post1_.id=? 2022-06-19 19:36:06.687 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [5] Hibernate: select comment0_.id as id1_0_0_, member1_.id as id1_3_1_, comment0_.content as content2_0_0_, comment0_.member_id as member_i3_0_0_, comment0_.post_id as post_id4_0_0_, member1_.email as email2_3_1_, member1_.name as name3_3_1_, member1_.password as password4_3_1_, member1_.phone_number as phone_nu5_3_1_, member1_.username as username6_3_1_ from comment comment0_ inner join member member1_ on comment0_.member_id=member1_.id where comment0_.post_id=? 2022-06-19 19:36:06.687 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [5] Hibernate: select postlike0_.id as id1_6_, postlike0_.member_id as member_i2_6_, postlike0_.post_id as post_id3_6_ from post_like postlike0_ left outer join post post1_ on postlike0_.post_id=post1_.id where post1_.id=? 2022-06-19 19:36:06.688 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [5] Hibernate: select count(postlike0_.id) as col_0_0_ from post_like postlike0_ left outer join post post1_ on postlike0_.post_id=post1_.id where post1_.id=? 2022-06-19 19:36:06.689 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [5] 2022-06-19 19:36:06.690 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([col_0_0_] : [BIGINT]) - [0]
🧨 Member 다중 조회 건
: 총 3건의 post를 조회하는데 있어서 member 쿼리가 3번이 나갑니다.
해당 쿼리
Hibernate: select member0_.id as id1_3_0_, member0_.email as email2_3_0_, member0_.name as name3_3_0_, member0_.password as password4_3_0_, member0_.phone_number as phone_nu5_3_0_, member0_.username as username6_3_0_ from member member0_ where member0_.id=? 2022-06-19 19:36:06.634 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [1] 2022-06-19 19:36:06.635 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([email2_3_0_] : [VARCHAR]) - [test00@gmail.com] 2022-06-19 19:36:06.635 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([name3_3_0_] : [VARCHAR]) - [00] 2022-06-19 19:36:06.636 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :50 : extracted value ([password4_3_0_] : [VARCHAR]) - [null] 2022-06-19 19:36:06.636 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([phone_nu5_3_0_] : [VARCHAR]) - [1234] 2022-06-19 19:36:06.636 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([username6_3_0_] : [VARCHAR]) - [test00] Hibernate: select member0_.id as id1_3_0_, member0_.email as email2_3_0_, member0_.name as name3_3_0_, member0_.password as password4_3_0_, member0_.phone_number as phone_nu5_3_0_, member0_.username as username6_3_0_ from member member0_ where member0_.id=? 2022-06-19 19:36:06.637 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [2] 2022-06-19 19:36:06.639 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([email2_3_0_] : [VARCHAR]) - [test01@gmail.com] 2022-06-19 19:36:06.639 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([name3_3_0_] : [VARCHAR]) - [01] 2022-06-19 19:36:06.639 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :50 : extracted value ([password4_3_0_] : [VARCHAR]) - [null] 2022-06-19 19:36:06.640 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([phone_nu5_3_0_] : [VARCHAR]) - [5678] 2022-06-19 19:36:06.640 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([username6_3_0_] : [VARCHAR]) - [test01] Hibernate: select member0_.id as id1_3_0_, member0_.email as email2_3_0_, member0_.name as name3_3_0_, member0_.password as password4_3_0_, member0_.phone_number as phone_nu5_3_0_, member0_.username as username6_3_0_ from member member0_ where member0_.id=? 2022-06-19 19:36:06.642 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicBinder :64 : binding parameter [1] as [BIGINT] - [3] 2022-06-19 19:36:06.646 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([email2_3_0_] : [VARCHAR]) - [test02@gmail.com] 2022-06-19 19:36:06.647 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([name3_3_0_] : [VARCHAR]) - [02] 2022-06-19 19:36:06.647 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :50 : extracted value ([password4_3_0_] : [VARCHAR]) - [null] 2022-06-19 19:36:06.647 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([phone_nu5_3_0_] : [VARCHAR]) - [9012] 2022-06-19 19:36:06.647 TRACE 51925 --- [io-8080-exec-10] o.h.type.descriptor.sql.BasicExtractor :60 : extracted value ([username6_3_0_] : [VARCHAR]) - [test02]
🐶 Fetch - Lazy 속성을 주는건 어떨까요?
🤔 PostLike, PostImage Join건
: 해당 건에 대해서 Post의 Join이 필요한지에 대해 생각해볼 필요가 있을 것 같습니다.
해당 쿼리
// Post Like select postlike0_.id as id1_6_, postlike0_.member_id as member_i2_6_, postlike0_.post_id as post_id3_6_ from post_like postlike0_ left outer join post post1_ on postlike0_.post_id=post1_.id where post1_.id=? // Post Image select postimage0_.id as id1_5_, postimage0_.original_file_name as original2_5_, postimage0_.path as path3_5_, postimage0_.post_id as post_id6_5_, postimage0_.server_file_name as server_f4_5_, postimage0_.size as size5_5_ from post_image postimage0_ left outer join post post1_ on postimage0_.post_id=post1_.id where post1_.id=?
👾PostLike Count건
: count 쿼리가 Join이 필요가 있을까요?
해당 쿼리
select count(postlike0_.id) as col_0_0_ from post_like postlike0_ left outer join post post1_ on postlike0_.post_id=post1_.id where post1_.id=?