ManyToOne
チュートリアルの続きで、ManyToOneをやってみたのでメモ。やり方は、Many側クラスのgetterに@ManyToOneをつけるだけです。
例えばRecipeとCategoryだとN:1になるので、RecipeのgetCategory()に@ManyToOneを付けます。Recipe.javaはこんな感じです。
package mysample; import java.util.Date; import javax.persistence.Entity; import javax.persistence.GeneratorType; import javax.persistence.Id; import javax.persistence.ManyToOne; @Entity public class Recipe { private Integer id; private String title; private String description; private Date date; private Category category; @ManyToOne() public Category getCategory(){ return category; } public void setCategory(Category category){ this.category = category; } ・・・以下、略 }
そして、Category.javaは、こんな感じです。別にどうということはありません。
package mysample; import javax.persistence.Entity; import javax.persistence.GeneratorType; import javax.persistence.Id; import org.apache.commons.lang.builder.EqualsBuilder; @Entity public class Category { private Integer id; private String name; @Id(generate=GeneratorType.AUTO) public Integer getId() { return id; } public void setId(Integer id){ this.id = id; } public String getName(){ return name; } public void setName(String name){ this.name = name; } public boolean equals(Object obj){ return EqualsBuilder.reflectionEquals(this, obj); } public String toString(){ return getName(); } }
できたら、redeployタスクで再デプロイします。
ant redeploy
アプリを確認すると、Recipeの登録画面にCategoryを選択できるコンボボックスが追加されているはずです。