jsf hibernate crud形式关系

时间:2014-04-28 15:17:05

标签: hibernate jsf primefaces crud

我正在使用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;
}

1 个答案:

答案 0 :(得分:0)

我认为第一次加载页面时,gender属性为null,因此您获得了NPE。 您可以尝试添加这样的空检查,

public Gender getGender() {
    if(gender == null) {
        gender = new Gender();
    }
    return gender;
}