å®åã§ãèªä¿¡ãæã£ãŠæžãJPAïŒ
æ Œå¥ãªJPAåºç€ã®ç¬¬äžæ©ãåãé¢ããŠã¿ãŠãã ããã
ð©ãã®è¬çŸ©ã¯ããŒããããã³ãŒã¹ã§ãã
- æ¬è¬çŸ©ã¯ãJavaããã¯ãšã³ãéçºå®è·µã³ãŒã¹ãéå§ããæåã®è¬çŸ©ã§ããã³ãŒã¹å
šäœã®æ§æãæ°ã«ãªãå Žåã¯ãã¹ããªã³ã°ããŒããšJPAå®åå®å
šåŸæããŒããããããŸã確èªããŠãã ããã (ãªã³ã¯)
Java ORMæšæºJPAããã°ã©ãã³ã° - åºæ¬ç·š
ãªããžã§ã¯ãããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã«ä¿åããã«ã¯ãéçºè
ã¯å€ãã®ã³ãŒããšSQLãäœæããå¿
èŠããããŸããããšãã°ããªããžã§ã¯ããSQLã«å€æããåçŽãªæ¥ããããªããžã§ã¯ãã®ç¶æ¿æ§é ãããŒãã«ã«æ ŒçŽããã®ãè€éãªããšãŸã§ãéçºè
ã¯ãªããžã§ã¯ããšããŒã¿ããŒã¹ã®éã«ç¡æ°ã®ãããã³ã°ã³ãŒããšSQLãçŽæ¥äœæããå¿
èŠããããŸãã
Java ORMæšæºã§ããJPAã¯ãSQLãäœæããã«ãªããžã§ã¯ããããŒã¿ããŒã¹ã«çŽæ¥ä¿åããã®ã«åœ¹ç«ã¡ããªããžã§ã¯ããšãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã®éããéäžã§è§£æ±ºããŸãã
Java ORMæšæºJPAãšã¯äœã§ããïŒ
JPA
- Java Persistence API
- Javaé£å¶ã®ORMæšæºæè¡
ORM
- Object-relational mapping (ãªããžã§ã¯ãé¢ä¿ãããã³ã°)
- ãªããžã§ã¯ãã¯ãªããžã§ã¯ããšããŠããªã¬ãŒã·ã§ãã«DBã¯ãªã¬ãŒã·ã§ãã«DBãšããŠèšèšãããŠããŸã
- ORMãã¬ãŒã ã¯ãŒã¯ãäžéãããããã³ã°
- ãªããžã§ã¯ããORMãã¬ãŒã ã¯ãŒã¯ã«ä¿åãããšãORMãã¬ãŒã ã¯ãŒã¯ã¯SQLãçæããŠãªããžã§ã¯ããDBã«ç®¡çããŸãã
- äžè¬çãªèšèªã«ã¯ã»ãšãã©ORMæè¡ããããŸã
JPAã䜿çšããçç±
- SQLäžå¿ã®éçºãããªããžã§ã¯ãäžå¿ãžã®éçº
- éçºçç£æ§ã®åäž
- ã¡ã³ããã³ã¹ã®äŸ¿å®
- ãã©ãã€ã ã®äžäžèŽã解決
- ããã©ãŒãã³ã¹ã®åäž
- ããŒã¿ã¢ã¯ã»ã¹ã®æœè±¡åãšãã³ããŒã®ç¬ç«æ§
- Java ORMæšæºæè¡
ãªã³ã©ã€ã³è¬çŸ©
å§ããçç±
ç§ã¯ãããŸã§æ§ã
ãªå®åãããžã§ã¯ãã«JPAãå°å
¥ããŠããŸãããå°èŠæš¡ãªã®ã¯ãåçŽãªWebãµãŒãã¹ãã倧å¹
ã«ã¯ãç²åäœã®ååŒéé¡ãåŠçããæ³šæ - æ±ºæž - 決æžã·ã¹ãã ãŸã§ãJPAã§çŽæ¥èšèšããã³éçºããŸããã JPAãåããŠå®åã«å°å
¥ããéã«ã¯ãå·Šå³ã®è¡çªãããããéçºã®çç£æ§ãšã¡ã³ããã³ã¹ã確å®ã«è¯ããªããæ®ãã®æéã«ã³ãŒãã®å質ãšãã¹ãã«å€ãã®æéãè²»ããããšãã§ããŸãããäœããããJPAã䜿ã£ãååã¯ä»¥åã«æ»ããããªãã£ãã
ããããJPAã«é¢ããåœå
è³æãäžè¶³ããŠãããã»ãšãã©ã顿žãªã®ã§é£ããç¹ãå€ãã£ãã§ããããã§2015幎ã«çŽæ¥Java ORMæšæºJPAããã°ã©ãã³ã°æ¬ãæžããŠããããã4å¹ŽãæµããŸããã
ãããŸã§ãã€ããŒãã«ã«ãªã®ãããªã€ã³ã¿ãŒãããããžãã¹äŒç€Ÿãããšã¬ã¬ã³ããªå
åŒãã¡ã11çªè¡ã®ãããªeã³ããŒã¹äŒç€ŸãŸã§ãJPAããã§ã«äœ¿çšäžãå°å
¥ããããšããå€ãã®äŒç€Ÿã«è¬æŒãããŸãããè¬æŒãéããŠæ¬ã§ã¯çè§£ãé£ããã£ãéšåãçŽæ¥è¬çŸ©ã§èãã®ã§ç°¡åã«çè§£ã§ãããšããéçºè
ã®æ¹ãå€ãã£ãã§ããããã§ããªã³ã©ã€ã³è¬çŸ©ãäœãããšã«ãªããŸããã
åºç€ããã£ãã
JPAåºæ¬ç·š
ä»åŸé²ãJPAè¬çŸ©ã¯å€§ããåºæ¬ç·šãšæŽ»çšç·šã«åãããŠããŸãããã®è¬çŸ©ã¯åºæ¬ç·šã§ãã
è¬çŸ©ç®æš
JPAã®å
éšåäœã®ä»æ¹ãçè§£ããŠããããåã«äŸ¿å©ã§ãããããJPAãå°å
¥ãã人ãããèŠãŸãããå®åã§ã¯ãæ¬åœã«å€æ§ã§è€éãªåé¡ãçºçããŸãããã®æãæ ¹æ¬åçãç¥ããªããšãå€ãã®æéãšè²»çšãç¡é§ã«ããããšã«ãªããŸãããããŠãJPAã§ãªããžã§ã¯ããšãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãèšèšããŠãããã³ã°ãããšããã©ã®ãããªæ¹æ³ãè¯ãã®ãåãããªããšå°ãè€éã«ãªã£ãŠãããŸããããšã«ãªããŸãã
ãããã£ãŠãJPAãããŸã䜿çšããã«ã¯ã次ã®2ã€ãæ·±ãçè§£ããå¿
èŠããããŸãã
- JPAã®å
éšåäœæ¹åŒ
- ãªããžã§ã¯ããšãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ããŒãã«ãæ£ãããããã³ã°ããæ¹æ³
åºæ¬ç·šã¯ãã®2ã€ã«çŠç¹ãåœãŠãŸãããåºç€ããã£ãããšããŠå®åã§JPAã䜿çšããŠãæããã«äœ¿çšã§ããããã«ããããšããã®è¬çŸ©ã®ç®æšã§ãã
掻çšç·š
æ¬åœïŒ Querydsl
Querydslãä»ããŠè€éãªã¯ãšãªãšåçã¯ãšãªã®åé¡ã解決ããŸãã
åèæž
æ¬ã¯ããæ·±ãå
容ãå匷ããã人ã®ããã«
åèæžãšèããŠãã ããã
ïŒæ¬ããªããŠãè¬çŸ©ã®ããã®å¥éè³æãæäŸãããŸããïŒ