{"url":"https://www.shigemk2.com/entry/functional_scala_meeting_4","blog_title":"by shigemk2","provider_url":"https://hatena.blog","categories":["Scala","\u52c9\u5f37\u4f1a"],"blog_url":"https://www.shigemk2.com/","description":"Free-ScalikeJDBC \u304b\u3089\u898b\u308b\u5408\u6210\u53ef\u80fd\u306aDSL\u306e\u4f5c\u308a\u65b9 \u00b7 GitHub ScalikeJDBC \u3088\u308aSQL\u3063\u307d\u304f\u66f8\u3051\u308bScala\u7528JDBC\u30e9\u30a4\u30d6\u30e9\u30ea \u30b5\u30f3\u30d7\u30eb val (p, c) = (Programmer.syntax(\"p\"), Company.syntax(\"c\")) val programmers: Seq[Programmer] = DB.readOnly { implicit session => withSQL { select .from(Programmer as p) .leftJoin(Company as c).on(p.companyId, c.id)\u2026","title":"Free-ScalikeJDBC \u304b\u3089\u898b\u308b\u5408\u6210\u53ef\u80fd\u306aDSL\u306e\u4f5c\u308a\u65b9 \u307e\u3068\u3081 #\u95a2\u6570\u578bScala","author_name":"shigemk2","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.shigemk2.com%2Fentry%2Ffunctional_scala_meeting_4\" title=\"Free-ScalikeJDBC \u304b\u3089\u898b\u308b\u5408\u6210\u53ef\u80fd\u306aDSL\u306e\u4f5c\u308a\u65b9 \u307e\u3068\u3081 #\u95a2\u6570\u578bScala - by shigemk2\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","width":"100%","version":"1.0","height":"190","published":"2015-07-25 16:28:40","type":"rich","author_url":"https://blog.hatena.ne.jp/shigemk2/","provider_name":"Hatena Blog","image_url":null}