[DOMA-312] 複数カラムを1つのDomainクラスにマッピングしたい Created: 2014-03-23 Updated: 2014-11-01 Resolved: 2014-11-01 |
|
| Status: | Closed |
| Project: | Doma |
| Component/s: | Core |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | New Feature | Priority: | Major |
| Reporter: | bufferings | Assignee: | Unassigned |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | None | ||
| Description |
|
複数カラムを1つのDomainクラスにマッピングしたいです。 例えば、氏名というドメインクラスを作って、 Java7とDoma1を使ってるのでDoma1での対応を希望します。 @bufferings |
| Comments |
| Comment by taedium [ 2014-11-01 ] |
|
Domaの既存機能でも実現可能なので対応を見送ります。 |
| Comment by bufferings [ 2014-03-23 ] |
|
すみません、ご提示いただいた方法でもオブジェクトとしては扱えていますね。ちょっと自分で考えてみます! |
| Comment by bufferings [ 2014-03-23 ] |
|
ありがとうございます。 そのようにして扱うことは可能なのですが、実現させたいこととは少しちがいます。 実現させたいのは、氏名という概念をオブジェクトとして扱いたいということです。あるカラムに意味と型安全性をもたせるという、Domainクラスの考え方マッチするかなと思いました。 対応なしとのことで了解しました。ありがとうございますー。 |
| Comment by taedium [ 2014-03-23 ] |
|
提案ありがとうございます。 おそろく求めているものは、現在の Doma でも比較的簡単に実現できると考えています。 Employee.java @Entity public class Employee { @Id private Integer id; private String firstName; private String lastName; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public FullName getFullName() { return new FullName(firstName, lastName); } public void setFullName(FullName fullName) { firstName = fullName.getFirstName(); lastName = fullName.getLastName(); } } FullName.java public class FullName { private final String firstName; private final String lastName; public FullName(String fisrtName, String lastName) { this.firstName = firstName; this.lastName = lastName; } public String getFirstName() { return firstName; } public String getLastName() { return lastName; } } getFullNameやsetFullNameの記述を複数エンティティで繰り返すのが面倒だとういう場合は親クラスで共通化することも可能です。 Doma で同等の機能を提供しようとすると新たなアノテーションや規約を追加することになり返って複雑さが増してしまうため、 |