<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Java on nnasaki のブログ</title>
    <link>https://blog.nnasaki.com/categories/java/</link>
    <description>Recent content in Java on nnasaki のブログ</description>
    <image>
      <title>nnasaki のブログ</title>
      <url>https://blog.nnasaki.com/ogp.png</url>
      <link>https://blog.nnasaki.com/ogp.png</link>
    </image>
    <generator>Hugo</generator>
    <language>ja-JP</language>
    <lastBuildDate>Mon, 30 Jun 2014 23:25:45 +0900</lastBuildDate>
    <atom:link href="https://blog.nnasaki.com/categories/java/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>【Spring 4.0 対応】Spring Boot と Spring MVC と Spring Data JPA を使って Web API を作成する (3)</title>
      <link>https://blog.nnasaki.com/entry/spring4/3/</link>
      <pubDate>Mon, 30 Jun 2014 23:25:45 +0900</pubDate>
      <guid>https://blog.nnasaki.com/entry/spring4/3/</guid>
      <description>&lt;h1 id=&#34;記事目次&#34;&gt;記事目次&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://nnasaki.hatenablog.com/entry/spring4/1&#34;&gt;【Spring 4.0対応】Spring Boot と Spring MVC と Spring Data JPA を使って Web API を作成する (1)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://nnasaki.hatenablog.com/entry/spring4/2&#34;&gt;【Spring 4.0対応】Spring Boot と Spring MVC と Spring Data JPA を使って Web API を作成する (2)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://nnasaki.hatenablog.com/entry/spring4/3&#34;&gt;【Spring 4.0対応】Spring Boot と Spring MVC と Spring Data JPA を使って Web API を作成する (3)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;今回使用するソース&#34;&gt;今回使用するソース&lt;/h1&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/nnasaki/spring-rest/tree/3&#34;&gt;https://github.com/nnasaki/spring-rest/tree/3&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2回目の続きです。何か良い題材が無いか探してたら、&lt;a href=&#34;https://github.com/spring-projects/spring-data-book/tree/master/jpa/src/main/java/com/oreilly/springdata/jpa/core&#34;&gt;spring-projects/spring-data-book&lt;/a&gt; がちょうど良さそうなので、これを写経しながら説明していきます。&lt;/p&gt;
&lt;p&gt;クラス図はこんな感じなようです。&lt;/p&gt;
&lt;figure class=&#34;figure-image figure-image-fotolife&#34;&gt;&lt;img src=&#34;https://qiita-image-store.s3.amazonaws.com/0/31790/c540e496-d911-e532-9107-aff67822d997.png&#34; title=&#34;kobito.1404055789.402848.png&#34; alt=&#34;kobito.1404055789.402848.png&#34; /&gt;&lt;figcaption&gt;kobito.1404055789.402848.png&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/spring-projects/spring-data-book/blob/master/doc/DomainModel.pdf&#34;&gt;spring-data-book/doc/DomainModel.pdf at master · spring-projects/spring-data-book&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;今回作成するDBはこんな感じ。Customerが&lt;a href=&#34;http://d.hatena.ne.jp/keyword/%CA%A3%BF%F4&#34;&gt;複数&lt;/a&gt;のAddressを持てるようです。Order とかはまだ作成しません。&lt;/p&gt;
&lt;figure class=&#34;figure-image figure-image-fotolife&#34;&gt;&lt;img src=&#34;https://qiita-image-store.s3.amazonaws.com/0/31790/7ce40fa8-a68c-3ea2-06bc-2a91462867fa.png&#34; title=&#34;kobito.1404132314.743252.png&#34; alt=&#34;kobito.1404132314.743252.png&#34; /&gt;&lt;figcaption&gt;kobito.1404132314.743252.png&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/nnasaki/spring-rest/tree/3&#34;&gt;ソースはGitHubに置きました。&lt;/a&gt;ダウンロードして解凍してください。&lt;/p&gt;
&lt;h1 id=&#34;ソース解説&#34;&gt;ソース解説&lt;/h1&gt;
&lt;p&gt;今回は一気にやることが増えています。大まかには次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CustomerからAddressへの一対多を@OneToManyで表現する。&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://d.hatena.ne.jp/keyword/%A5%EA%A5%DD%A5%B8%A5%C8%A5%EA&#34;&gt;リポジトリ&lt;/a&gt;のテストを作成する&lt;/li&gt;
&lt;li&gt;テストデータを作成する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらを順番に説明していきます。最終的にはこんな感じの構成になります。&lt;/p&gt;
&lt;figure class=&#34;figure-image figure-image-fotolife&#34;&gt;&lt;img src=&#34;https://qiita-image-store.s3.amazonaws.com/0/31790/edd391c3-99cb-78fb-ebc9-2f972d65fd81.png&#34; title=&#34;kobito.1404134700.033991.png&#34; alt=&#34;kobito.1404134700.033991.png&#34; /&gt;&lt;figcaption&gt;kobito.1404134700.033991.png&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h2 id=&#34;customerからaddressへの一対多をonetomanyで表現する&#34;&gt;CustomerからAddressへの一対多を@OneToManyで表現する&lt;/h2&gt;
&lt;p&gt;説明簡略化のため、Getter/Setter は付けずにpublicで設定しています。ソースの一部を抜粋して説明しています。&lt;/p&gt;</description>
    </item>
    <item>
      <title>【Spring 4.0 対応】Spring Boot と Spring MVC と Spring Data JPA を使って Web API を作成する (2)</title>
      <link>https://blog.nnasaki.com/entry/spring4/2/</link>
      <pubDate>Thu, 26 Jun 2014 23:05:12 +0900</pubDate>
      <guid>https://blog.nnasaki.com/entry/spring4/2/</guid>
      <description>&lt;h1 id=&#34;記事目次&#34;&gt;記事目次&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://nnasaki.hatenablog.com/entry/spring4/1&#34;&gt;【Spring 4.0.5対応】Spring Boot と Spring MVC と Spring Data JPA を使って Web API を作成する (1)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://nnasaki.hatenablog.com/entry/spring4/2&#34;&gt;【Spring 4.0.5対応】Spring Boot と Spring MVC と Spring Data JPA を使って Web API を作成する (2)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://nnasaki.hatenablog.com/entry/spring4/3&#34;&gt;【Spring 4.0.5対応】Spring Boot と Spring MVC と Spring Data JPA を使って Web API を作成する (3)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;今回使用するソース&#34;&gt;今回使用するソース&lt;/h1&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/nnasaki/spring-rest/tree/1&#34;&gt;https://github.com/nnasaki/spring-rest/tree/1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;1回目の続きです。こんな感じのをつくります。&lt;/p&gt;
&lt;figure class=&#34;figure-image figure-image-fotolife&#34;&gt;&lt;img src=&#34;http://cdn-ak.f.st-hatena.com/images/fotolife/n/nnasaki/20150710/20150710100020.png&#34; alt=&#34;f:id:nnasaki:20150710100020p:plain&#34; title=&#34;f:id:nnasaki:20150710100020p:plain&#34; class=&#34;hatena-fotolife&#34; itemprop=&#34;image&#34;&gt;&lt;figcaption&gt;f:id:nnasaki:20150710100020p:plain&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h1 id=&#34;どんな動きをするか見てみよう&#34;&gt;どんな動きをするか見てみよう&lt;/h1&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/nnasaki/spring-rest/tree/1&#34;&gt;ソースは Github に置きました。&lt;/a&gt;。ソースを落としてきて、 &lt;code&gt;./gradlew bootRun&lt;/code&gt; すれば次のような感じでサーバーが立ち上がると思います。&lt;/p&gt;
&lt;figure class=&#34;figure-image figure-image-fotolife&#34;&gt;&lt;img src=&#34;http://cdn-ak.f.st-hatena.com/images/fotolife/n/nnasaki/20150710/20150710100110.png&#34; alt=&#34;f:id:nnasaki:20150710100110p:plain&#34; title=&#34;f:id:nnasaki:20150710100110p:plain&#34; class=&#34;hatena-fotolife&#34; itemprop=&#34;image&#34;&gt;&lt;figcaption&gt;f:id:nnasaki:20150710100110p:plain&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;&lt;code&gt;http://localhost:8080/customer&lt;/code&gt; に対して &lt;code&gt;{ &amp;quot;password&amp;quot;: &amp;quot;test_password&amp;quot; }&#39;&lt;/code&gt; を POSTしますとユーザーが作られます。&lt;/p&gt;
&lt;figure class=&#34;figure-image figure-image-fotolife&#34;&gt;&lt;img src=&#34;https://qiita-image-store.s3.amazonaws.com/0/31790/0d0ff4e0-e58b-dbfb-0109-280382e07c82.png&#34; title=&#34;kobito.1403786256.892886.png&#34; alt=&#34;kobito.1403786256.892886.png&#34; /&gt;&lt;figcaption&gt;kobito.1403786256.892886.png&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;&lt;code&gt;http://localhost:8080/customer/1&lt;/code&gt; に対して GET すると、次のようなレスポンスが返却されます。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
