Hibernate 具有字段子集的JPA更新模型
我使用的是PlayFramework1.2.4,我有一个配置文件页面,页面上有许多元素,这些元素分为几个部分(基本信息、教育、工作经验等)Hibernate 具有字段子集的JPA更新模型,hibernate,model-view-controller,jpa,playframework,Hibernate,Model View Controller,Jpa,Playframework,我使用的是PlayFramework1.2.4,我有一个配置文件页面,页面上有许多元素,这些元素分为几个部分(基本信息、教育、工作经验等) 人物模型如下所示: @Entity @Table(name="Persons") public class Person extends GenericModel implements Serializable { private static final long serialVersionUID = 1L; @Id @Gener
人物模型
如下所示:
@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对象绑定的参数,即播放文档中的(person.firstName、person.lastName等):
我遇到的问题是,这种类型的绑定似乎需要模型的所有字段,所以在特定视图中没有设置的字段上,我得到了空冲突
我当前的代码正在使用JPA.em().createQuery
解决它,但是我在类型方面遇到了不同的问题
我在寻找更好的方法?有什么想法吗?这里有一些选择 1) 创建仅为事务保留的表单对象。向导过程的每个部分都将有一个不同的对象,向导过程的最后一部分将把所有这些对象转换为最终的模型对象 2) 第二种选择是在模型中允许空值,并接受数据库可能包含不完整的对象数据
3) 在最后一步之前不要保存到数据库中,但要将以前表单上收集的数据保存到当前表单的隐藏字段中,以便在最后一步中,所有数据都作为对象传入并可以简单地保存。这里有一些选项 1) 创建仅为事务保留的表单对象。向导过程的每个部分都将有一个不同的对象,向导过程的最后一部分将把所有这些对象转换为最终的模型对象 2) 第二种选择是在模型中允许空值,并接受数据库可能包含不完整的对象数据
3) 在最后一步之前不要保存到数据库中,但要将以前表单上收集的数据保存到当前表单的隐藏字段中,以便在最后一步中,所有数据都作为对象传入并可以简单地保存。我建议选择1,让一些临时对象在窗体和控制器之间移动数据,并在其中将数据移动到模型中。这样也可以避免将数据暴露给恶意用户。感谢回复。但是什么是表单对象呢?我建议选项1,让一些临时对象在表单和控制器之间移动数据,并在其中将数据移动到模型中。这样也可以避免将数据暴露给恶意用户。感谢回复。但是游戏中的物体是什么形式的呢?