Play!のエンティティ

機嫌良くPlay!を楽しんでいるわけですが、少し驚いたというか、何というかという感じだったことがあります。それは、エンティティクラスではPublic変数を定義していると言うことでしょうか。SetterやGetterを利用せずにです。

[sourcecode language="java"] @Entity public class User { public String email; public String password; public String fullName; public boolean isAdmin;

public User(String email, String password, String fullName) {
    this.email = email;
    this.password = password;
    this.fullName = fullName;
}

} [/sourcecode]

見た目はC#でオートプロパティを使用した時にそっくりになってきたのでとても良いのですが、何となく違和感を感じました…。 ただ、これはEntityFrameworkでも感じたのですが、エンティティクラス、特にテーブルに対応するエンティティクラスについては、SetterやGetterのようなメソッドよりも属性やアノテーションなんかで制御していく方が便利だろうと思います。

そう考えると、違和感はありますがこれはこれですっきりしているように思います。