chicol
@chicol
Reviews Written
1
Average Rating
5.0
Posts
Q&A
์ฟผ๋ฆฌ๋ก ์ด๋์ ๋์ ์ฐ์ฐ ๋ ๋ฒจ๊น์ง ํ์ฉ ํ๋๊ฒ ๋ง์๊น์?
๋ต๋ณ์ ๋ฃ๊ณ ๋๋ ์ด๋ ์ ๋ ๊ฐ์ด ๋ ์กํ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค ๋์ฌ๋ ์ต๊ณ ! ^^
- 1
- 2
- 1.4K
Q&A
@Autowired EntityManager ์ธ์ ๊ด๋ฆฌ์ ๋ํด ์ง๋ฌธ ๋๋ฆฝ๋๋ค.
์์ด๊ณ ~~ JPA ๋์ฌ๋~ ใ ใ ๋์ฌ๋ ๋ง์๋๋ก `selectPoint()`๋ ๊ฐ์ ํด๋์ค์ ์๋ ํจ์์์ต๋๋ค. ์ด๋ป๊ฒ ์ด๋ฐ ๋ฌธ์ ๋ค์ ํ๋ฒ์ ๋ฑ! ๋ณด์๊ณ ์์๋ง์ถ์๋์ง ์ ๋ง ์ ํตํ์ญ๋๋ค.ใ 1๋ฒ์ ๋ง์ํ์ ๋๋ก ์์์ฑ ์ปจํ ์คํธ๊ฐ ์์ด์ ๊ทธ๋ฐ๊ฒ ๊ฐ์ต๋๋ค. ์ด ๋ถ๋ถ์ ์ ๊ฐ ๊ณต๋ถ๋ฅผ ์ํํ ํ์ฌ ํ์ ํ์ง ๋ชปํ๊ฒ ๊ฐ์ต๋๋ค..ใ ์ฌ์ค 3๋ฒ๋ ์ ๊ฐ ๊ณต๋ถ๋ฅผ ์ํํ ํ์ง ์์๋ค๋ฉด (2๊ถ์ ๋ชจ๋ํฐ ๋ฐ์นจ๋๋ฅผ ๋ ์์ธํ ์ดํ์ผ๋ฉด ์ด๋ ต์ง ์๊ฒ ํ์ ํ์ ํ ๋ฐ..) ํด๋์ค๋ฅผ ๋ถ๋ฆฌํ์ฌ ์คํํด๋ณด๋ ์๊ฐํ๋๋ก ์ ๋์ ๊ฐ๋ค์. ๋์ฌ๋ ์์์ผ๋ฉด JPA ๊ณต๋ถ ์ด์ฐ ํ์๋ฐ์ง ์๊ฐ๋ง ํด๋ ๋์์ด ์บ์บํฉ๋๋ค. ์ด์ ์ ๋ง ์ง๋ฌธ ํ์ง ์๋๋ก ๊ณต๋ถ ์ด์ฌํ ํ๊ฒ ์ต๋๋ค. ๋ค์ ํ ๋ฒ ๋์ฌ๋์ ์ ๊ธฐ์ ๊ฐํ์ ํ๋ฉฐ ๊ฐ์ฌ๋๋ฆฝ๋๋คใ ใ ๋ถ๋ ์ข์ ์ฃผ๋ง ๋ณด๋ด์๊ธธ ๋ฐ๋๋๋ค.
- 0
- 4
- 2.5K
Q&A
์ํฌ ๊ด๊ณ์ ๊ฒฝ์ฐ JPA์์ ์ด๋ค ์์ผ๋ก ๋งคํ ํด์ผ ํ๋์?
๊น์ํ๋์ ๋ฐ๋ฏํ ๋ต๋ณ์ ์จ๋ชธ์ด ๋ น์๋ฒ๋ฆด ๊ฒ ๊ฐ์ต๋๋ค..ใ ใ ๋ฆ์ ๋ฐค์๋ ์ด๋ ๊ฒ ์ ์ฑ์ค๋ฐ ๋ต๋ณ์ ํด์ฃผ์๋ค๋, ์ฒ์ฌ๊ฐ ์ฌ๋์ ํ๋ด๋ฅผ ๋ด๊ณ ์๋์ง ์์ฌ์ค๋ฌ์ด ๋ถ๋ถ์ ๋๋ค. JPA๋ฅผ ๊ณต๋ถํ๊ธฐ ์ํด ์ด ๊ฐ์๋ฅผ ์ ํํ๊ฑด ์ ์ ํ์์๋๊ฒ ๊ฐ์ต๋๋ค. (๋๋ฆฌ ์๋ฆฌ๊ฒ ์ต๋๋ค.) ๊ทธ ๋์ ๊น์ํ๋๊ป์ ์ฃผ์ ๋ต๋ณ์ด ์ ๊ฐ JPA๋ฅผ ๊ณต๋ถํ์ฌ ์ค๋ฌด์ ์ ์ฉํ๋๋ฐ ์ ๋ง ํฐ ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ฐ ๊ณ ํ๋ฆฌํฐ์ ๋ต๋ณ์ ์ฃผ์ค์ง ์์๋ ๋ชปํ์ต๋๋ค. ์ ๋ง ๋๋ฌด ๊ฐ์ฌ๋๋ฆฌ๊ณ , ์์ผ๋ก๋ ๊น์ํ๋์ ๋ชจ๋ ๊ฐ์์ ๋์๋ฅผ ๋ค ๊ตฌ๋งคํ์ฌ ์๊ฒ๋๋ง ์ํ๋ฅผ ๋ณด๋ตํ๊ฒ ์ต๋๋ค. ์ดํ์๋ ์ง๋ฌธ์ด ์๋ ์ค๋ฌด์ JPA๋ฅผ ์์ ํ ์ ์ฉ ํ์ ๋ ์ด๋ป๊ฒ ์ ์ฉํ๋์ง์ ๋ํ ํ๊ธฐ๋ฅผ ๋จ๊ธฐ๊ฒ ์ต๋๋ค. ์ค๋ฌด์ ์ธ์ ์ ์ฉ์ด ๊ฐ๋ฅํ ์ง ์์ง์ ์์ ์์ง๋ง, ํ์คํ๊ฑด ์ ์ฉํ๊ฒ ๋๋ฉด ๊ทธ๊ฑด ๊น์ํ๋์ ๊ฐ์์ ๋ต๋ณ์ด ์์๋ค๋ฉด ๋งค์ฐ ํ๋ ์ผ์ด์์ ๊ฒ์ ๋๋ค. ๋ค์ ํ ๋ฒ ์ ์ฑ์ค๋ฌ์ด ๋ต๋ณ์ ๊ฐ์ฌ๋๋ฆฌ๋ฉฐ, ๊ทธ ๋ชจ์ต์ ์กด๊ฒฝ ํฉ๋๋ค. (_ _)
- 0
- 9
- 1.1K
Q&A
์ํฌ ๊ด๊ณ์ ๊ฒฝ์ฐ JPA์์ ์ด๋ค ์์ผ๋ก ๋งคํ ํด์ผ ํ๋์?
์๋ ํ์ธ์ ๊น์ํ๋ ์ ๊ฐ ์ด๋ ๋ฌผ์ด๋ณผ ๊ณณ์ด ์์ด ๋ค์ ํ๋ฒ ์ฌ์ญ๊ฒ ๋๋ค์.(ํ๋ฃจ๋ง์ ๋ค์ ์ฐพ์์จ ์ด ๋ฌด๋ฅ๋ ฅํ ์ฌ๋..) ๋ฐ์์คํ ๋ฐ ์๊พธ ์ฃ์กํฉ๋๋ค. ์ธ ๊ฐ์ง ํ์ธ ํ๊ณ ์ถ์ ๋ถ๋ถ์ด ์์ด ์ง๋ฌธ ๋๋ฆฝ๋๋ค. ๋ต๋ณ ํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.ใ ใ 1. arc๋ฅผ ์ ์งํ์ง ์๋ ๋ฐฉ์์ด๋ผ๋ฉด `point` ํ ์ด๋ธ์์ `target_id`๋ฅผ ์ ๊ฑฐ ํ๊ณ , point ํ ์ด๋ธ์ ์ํผํ์ ํ ์ด๋ธ๋ก ๊ณตํต ๊ฐ์ ๋จ๊ฒจ๋๊ณ , ๋๋จธ์ง๋ ๊ตฌ๋ถ ํ์ ๋ง๋ค ์๋ธ ํ ์ด๋ธ์ ํ๋์ฉ ๋ง๋ ๋ค๋ ๋ง์ ์ธ๊ฐ์? [๊ธฐ์กด ERD] (์ฌ์ง) [์ ๊ท ERD] (์ฌ์ง) `point` ํ ์ด๋ธ์์ `target_id`๋ฅผ ์ ๊ฑฐ ํ๊ณ ๊ณตํต ๋ถ๋ถ์ ๋จ๊ฒจ ๋ ์ฑ, ํ์ ๋ณ๋ก ์๋ธ ํ ์ด๋ธ์ ๋ง๋ค์์ต๋๋ค. `member`(ํ์ ์ ๋ณด) ํ ์ด๋ธ์ `point_id`๋ฅผ ๋ง๋ค๋ ค๋ ๋ญ๊ฐ ์ด์ํ ๊ฒ ๊ฐ์์ ์ถ์ฒ์ธ ํ์ ๊ฐ์ ํ ์ด๋ธ `recommender`๋ฅผ ์๋ธ ํ ์ด๋ธ๋ก ์์ฑ ํ์์ต๋๋ค. `offer_wall` ํ ์ด๋ธ์ ๊ธฐ์กด ํ ์ด๋ธ์์ `point_id`๋ง ์ถ๊ฐํ๋ฉด ์๋ธ ํ ์ด๋ธ์ด ๋ ๊ฒ ๊ฐ์์ ๋ฐ๋ก ํ ์ด๋ธ์ ์์ฑํ์ง ์์์ต๋๋ค. ์ด๋ ๊ฒ ํ์ ๋ณ๋ก ์๋ธํ ์ด๋ธ์ด ์์ฑ ๋๋ ๊ฒ์ด ๋ง๋ ๊ฑด๊ฐ์? 2. ์ฌ์ ํ `point_manager_id`๋ก ํ ์ด๋ธ์ ๊ตฌ๋ถํ์ฌ `point_id`๋ฅผ ํตํด ์ํฌ ํ์ ์ผ๋ก ํ์ ํ ์ด๋ธ๋ก ์ฐพ์๊ฐ๋๊ฒ ๊ฐ๋ฅํฉ๋๋ค. ์ ๊ฐ ์๋ชป ๋ง๋ค์ด์ ์์ง ์ํฌ ๊ด๊ณ์ฒ๋ผ ๋์์ด ๊ฐ๋ฅํ๊ฑด๊ฐ์? 3. ๋ง์ง๋ง์ผ๋ก ๊ฐ์ฅ ๊ถ๊ธํ ์ง๋ฌธ์ ๋๋ค. ์ ์ฒด ๋ฐ์ดํฐ(๋ชจ๋ ํ์ )์์ `point_id`๊ฐ ์ ๋ํฌํ ๊ฐ์ด ๋๊ธฐ ๋๋ฌธ์ ์๋ธ ํ ์ด๋ธ์์ ์ ์ฒ๋ฆฌ๋ฅผ ํ๊ณ , ์ํผ ํ ์ด๋ธ๋ก ์ฌ๋ผ๊ฐ ์ ์๊ฒ ๋๊ฑฐ ๊ฐ์ต๋๋ค. ์ํผ/์๋ธ ํ ์ด๋ธ ๊ตฌ์กฐ์ JPA๋ฅผ ์ ์ฉํ๊ฒ ๋๋ฉด ์์ง ์ํฌ ๊ด๊ณ์ฒ๋ผ ๋์ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ง์ ํ๊ณ , ํญ์ ์๋ธ ํ ์ด๋ธ์์ ์ ์ฒ๋ฆฌ๋ฅผ ํด์ผ ๋๋๊ฑด๊ฐ์?
- 0
- 9
- 1.1K
Q&A
์ํฌ ๊ด๊ณ์ ๊ฒฝ์ฐ JPA์์ ์ด๋ค ์์ผ๋ก ๋งคํ ํด์ผ ํ๋์?
์ค์ ์ ๋ฌด์์๋ ํ์ฌ ์์ฃผ ์ฌ์ฉ ๋๋ ๊ฒ๋ง ํด๋ 4๊ฐ๊น์ง ํ์ฅ ๋์ด ์๊ณ , ์์ฃผ ์ฌ์ฉ ๋์ง ์๋๊ฒ๊น์ง ํฌํจํ๋ฉด 10๊ฐ๊ฐ ๋์ด ๊ฐ๋๋ค. ์ ๋ JPA๋ ์ ์ฉ ์ํค๊ณ ์ถ๊ณ , ์ ์ง๋ณด์๋ ํธํ๊ฑธ ์ข์ํ๋ ๊น์ํ๋์ ์กฐ์ธ์ ์ฐธ๊ณ ํ์ฌ, ์์๊ด๊ณ๋ฅผ ๋งคํํ์ฌ ํด๊ฒฐ ํ๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋จผ์ Point ํ ์ด๋ธ์ ์ํผํ์ ๊ณผ ์๋ธํ์ ์ผ๋ก ๋ง๋ค๋ผ๋ ๋ง์์ด ์ง๊ธ์ ๋ช ํํ๊ฒ ์ด๋ค ๋ป์ธ์ง ์ดํด ํ์ง ๋ชปํ์ง๋ง ๋ ๊ณต๋ถํ์ฌ ์๋ํด ๋ณด๊ณ , ํน์ ๋งํ๋ ๋ถ๋ถ์ด ์๋ค๋ฉด ๊ทธ ๋ ๊น์ํ๋์ ์กฐ์ธ์ ๋ค์ ํ ๋ฒ ๋ถํ๋๋ฆฌ๊ฒ ์ต๋๋ค.(์ต๋ํ ์ง๋ฌธํ์ง ์๋๋ก ํ๊ฒ ์ต๋๋ค.) ๋ฆ์ ์๊ฐ๊น์ง ์ ์ฑ์ค๋ฌ์ด ๋ต๋ณ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.ใ ์ข์ ๋ฐค ๋ณด๋ด์๊ธธ ๋ฐ๋๋๋ค. ^^
- 0
- 9
- 1.1K
Q&A
์ํฌ ๊ด๊ณ์ ๊ฒฝ์ฐ JPA์์ ์ด๋ค ์์ผ๋ก ๋งคํ ํด์ผ ํ๋์?
์๋ ํ์ธ์ ๊น์ํ๋ :D ๋ฆ์ ์๊ฐ๊น์ง ๊ณ ์์ด ๋ง์ผ์ญ๋๋ค. ์ ๊ฐ ์ํฌ ๊ด๊ณ์ ์ฌ๋ฌ ์ผ์ด์ค๊ฐ ์๋์ง ๋ชฐ๋์ต๋๋คใ ใ ๋นํจ์จ์ ์ธ ์ง๋ฌธ์ ํ์ฌ ๋ ๋ฒ ๋ต๋ณ ํ์๊ฒ ๋ง๋ค์ด ์ก๊ตฌ์ค๋ฝ์ต๋๋ค.ใ ใ ๋จผ์ ERD์ ๋๋ค. ์ต๋ํ ์์ธํ๊ณ , ๊ฐ๋จํ๊ฒ ์์ฑํ์ต๋๋ค. (์ฌ์ง) ์ ๋ฌด ๋ด์ฉ์ ํฌ์ธํธ ์ ๋ฆฝ์ ๋๋ค. ์์ ์์๋ ํฌ์ธํธ๋ฅผ ์ ๋ฆฝํ๋ ๋ฐฉ๋ฒ์ 1. ๊ด๊ณ ๋ฅผ ๋ณด๋ ๊ฒ๊ณผ 2. ๋ค๋ฅธ ์ฌ๋์ ์ด๋ํ์ฌ ํ์ ๊ฐ์ ์ํค๋ ๊ฒ์ ๋๋ค. `point` ํ ์ด๋ธ์์ ์ฃผ์ ๋ด์ฉ์ - ๋๊ตฌ์๊ฒ ์ ๋ฆฝ ์์ผ์ค ๊ฒ์ธ์ง (`member_id`) - ์ด๋ค ์ ํ์ ํฌ์ธํธ ์ ๋ฆฝ์ธ์ง (`point_manager_id`) - ์ด ๊ฐ์ ๋ฐ๋ผ target_id๊ฐ ์ฐธ์กฐํด์ผ ํ ํ ์ด๋ธ์ด ๋ฐ๋๋๋ค. - ์ ๋ฆฝ ๋๋ ์์ค๋ฅผ ๊ฐ๋ฆฌํค๋ (`target_id`)๊ฐ ์์ต๋๋ค. - ์ด `target_id`์ ์ฐธ์กฐ ๋์์ `point_manager_id`์ ๊ฐ์ ๋ฐ๋ผ `member.id` ์ผ์๋ ์๊ณ , `offer_wall.id` ์ผ์๋ ์์ต๋๋ค. - ์ฐธ์กฐํด์ผ ํ ๋์์ด ์๋ ๊ฒฝ์ฐ ์ด ๊ฐ์ `0`์ผ๋ก ๋ค์ด๊ฐ๋๋ค. ์ฌ์ค์ `null`์ด์ฃ . ex) ์ถ์์ฒดํฌ. ์ถ์์ฒดํฌ ๊ด๋ จ ํ ์ด๋ธ์ ์์ต๋๋ค. ์์ ์์๋ `1`์ด๋ฉด `member` ํ ์ด๋ธ์ ์ฐธ์กฐํ๊ณ , `2`์ด๋ฉด `offer_wall` ํ ์ด๋ธ์ ์ฐธ์กฐํ๋ค๊ณ ๋ณด์๋ฉด ๋๊ฒ ์ต๋๋ค. ์๋ ํ ์ด๋ธ DDL๊ณผ INSERT์ฉ DML์ ์์ฑ ํ์์ต๋๋ค. `mariadb`๋ฅผ ์ฌ์ฉํ์๊ณ ์คํค๋ง ์ด๋ฆ์ `test`๋ก ์์ฑ ํ์์ต๋๋ค. /* ํ์ ์ ๋ณด */create table member( id int auto_increment primary key, recommender int null comment '์ถ์ฒ์ธ ํ์ ๋ฒํธ');/* ๊ด๊ณ ์ ๋ณด */create table offerwall( id int auto_increment primary key, ads_name varchar(45) not null comment '๊ด๊ณ ๋ด์ฉ');/* ํฌ์ธํธ ์ ๋ฆฝ ๋ด์ญ */create table point( id int auto_increment primary key, member_id int not null comment 'ํ์ ๋ฒํธ', point_manager_id int not null comment 'ํฌ์ธํธ ๋ถ๋ฅ ๋ฒํธ', target_id int default 0 not null comment 'ํ์ ๋ฒํธ or ๊ด๊ณ ๋ฒํธ', content varchar(50) not null comment 'ํฌ์ธํธ ์ ๋ฆฝ ๋ด์ฉ', value int not null comment '์ ๋ฆฝ ๊ธ์ก', constraint point_member_id_fk foreign key (member_id) references member (id), constraint point_offerwall_id_fk foreign key (target_id) references offerwall (id), constraint point_member_id_fk_2 foreign key (target_id) references member (id), constraint point_point_manager_id_fk foreign key (point_manager_id) references point_manager (id)) charset = utf8;/* ํฌ์ธํธ ์ ๋ฆฝ ๊ตฌ๋ถ */create table point_manager( id int auto_increment primary key, content varchar(25) not null) charset = utf8; /* INSERT member */INSERT INTO test.member (recommender) VALUES (null);INSERT INTO test.member (recommender) VALUES (1);/* INSERT ads */INSERT INTO test.offerwall (id, ads_name) VALUES (1, 'JPA ADS');INSERT INTO test.offerwall (id, ads_name) VALUES (2, 'JAVA ADS');/* INSERT point */INSERT INTO test.point (id, member_id, point_manager_id, target_id, content, value) VALUES (1, 1, 1, 2, '์น๊ตฌ ์ด๋', 10);INSERT INTO test.point (id, member_id, point_manager_id, target_id, content, value) VALUES (2, 1, 2, 1, 'JPA ADS', 1);INSERT INTO test.point (id, member_id, point_manager_id, target_id, content, value) VALUES (3, 2, 2, 2, 'JAVA ADS', 1);/* INSERT point_manager */INSERT INTO test.point_manager (id, content) VALUES (1, '์น๊ตฌ ์ด๋');INSERT INTO test.point_manager (id, content) VALUES (2, '๊ด๊ณ ์ ๋ฆฝ'); ํน์ ์ด ๊ตฌ์กฐ์์ ์ํฌ ๊ด๊ณ๊ฐ ์๋ ๋ค๋ฅธ ๋ฐฉ์์ ์ถ์ฒ ํ์ ๋ค๋ฉด ์ด๋๋ฅผ ์ด๋ป๊ฒ ๋ณ๊ฒฝํ๋๊ฒ ์ข์์ง ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. ์๋๋ผ๋ฉด ์ํฌ ๊ด๊ณ์์๋ JPA๋ฅผ ์ ์ ์ฉํ์ฌ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ผ๋ฉด ์ด๋ค ๋ฐฉ์์ผ๋ก ํด๊ฒฐ ํ ์ ์๋์ง ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. (_ _) p.s: ํ ๋น์ ์คํ๋ง์ ์ค๋ ์ ๋ถํฐ ํ์ฌ ๋ชจ๋ํฐ ์๋์์ ๋ํ ๋์ ์์ด ํ์คํ๊ฒ ์ ์ญํ ์ ํด๋ด๋ ์ค์ ๋๋ค. ํนํ ๋์ผ๋ชจ๋ํฐ์๋ ์ต๊ณ ์ ์๋์ง๋ฅผ ๋ฐํํ๋ ๊ฒ ๊ฐ์ ๋ค๋ฅธ ์ ํ์ ๊ณ ๋ คํด๋ณผ ํ์๋ ์๋ ์ต๊ณ ์ ๋ฌผ๊ฑด์ด๋๊ตฐ์. ๊น์ํ๋๊ป์ ์ถ์ฒํด์ฃผ์๋ ๋ง์์ ๋ค์ผ๋ ์ญ์ ์ ์ ํ์ด ํ๋ฆฌ์ง ์์๋ค๋ ํ์ ์ ๋ค์ ํ ๋ฒ ํ๊ฒ ๋ฉ๋๋ค.
- 0
- 9
- 1.1K




