私はプレイ フレームワーク 1.2.4 を使用しており、セグメント (基本情報、教育、職歴など) で区切られた多くの要素を含むプロファイル ページがあります。
Person model
次のようになります。
@Entity
@Table(name="Persons")
public class Person extends GenericModel implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="Id",nullable=false,unique=true)
private int id;
@Column(name="FirstName",nullable=false)
private String firstName;
@Column(name="MiddleInitial")
private String middleInitial;
@Column(name="LastName",nullable=false)
private String lastName;
@Column(name="Born",nullable=false)
@Temporal(javax.persistence.TemporalType.DATE)
private java.util.Date born;
@Column(name="Sex",nullable=false)
private String sex;
@Email
@Column(name="Email",nullable=false,unique=true)
private String email;
@Column(name="City")
private String city;
...
コントローラーにはこれがあります:
public static void updatePerson(Person person) {
person.validateAndSave();
}
更新のサブセットをモデルに送信したいと思います。つまり、送信オプションを持つフォームの一部には、person.firstName, person.lastName, person.dob
ビューでは、JPA オブジェクト バインディング ie(person.firstName、person.lastName など) のドット表記を使用してパラメーターを送信しています。プレイ ドキュメントから:
http://www.playframework.org/documentation/1.2/controllers#objectbinding
私が抱えている問題は、このタイプのバインディングにはモデルのすべてのフィールドが必要なように見えるため、特定のビューで設定されていないフィールドで NULL 違反が発生することです。
私の現在のコードはそれを使用しJPA.em().createQuery
ていますが、型に関してさまざまな問題が発生しています...
私はより良い方法を探していますか?何かご意見は?