我正在使用hibernate 4,jsf 2.2和primefaces 4。 当我创建一个实体CRUD表单时,我应该使用哪种策略?
使用对象进行关系,并使用实体通用转换器:
<h:inputHidden id="gender" value="#{user.gender}" converter="entityconverter"/>
或使用object.id
<h:inputHidden id="gender_id" value="#{user.gender.id}" />
更新 我正在使用Netbeans创建的标准实体和数据库中的实体。
User.java:
@JoinColumn(name = "gender", referencedColumnName = "id")
@ManyToOne(optional = false, fetch = FetchType.LAZY)
private Gender gender;
public Gender getGender() {
return gender;
}
Gender.java:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Long id
public Long getId() {
return id;
}
答案 0 :(得分:0)
我认为第一次加载页面时,gender属性为null,因此您获得了NPE。 您可以尝试添加这样的空检查,
public Gender getGender() {
if(gender == null) {
gender = new Gender();
}
return gender;
}