@ManyToOne作为对其他表的引用

时间:2013-03-01 20:52:44

标签: spring hibernate jpa spring-mvc

我希望帐户实体中的安全问题“引用”SecurityQuestion表中的一个安全问题,而不是创建一个新问题。请采取以下措施:

@Entity
public class Account {

    @Id
    @GeneratedValue...
    private Long id;
    @ManyToOne(cascade=CascadeType.ALL)
    private SecurityQuestion question;
    ...
}

@Entity
public class SecurityQuestion {

    @Id
    @GeneratedValue...
    private Long id;
    private String question;
    ...
}

使用Spring的表单时:选择以选择帐户的安全问题,在我保存帐户实体时会创建一个新的安全问题。注意:SecurityQuestion表是要显示的预定义问题的列表。

<form:select path="securityQuestion.question">
    <form:option value="" label="Select..."/>
    <form:options items="${questions}" />
</form:select>

如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

我认为这是因为CascadeType.ALL设置了id SecurityQuestion {(1}}(因此,hibernate以CascadeType.PERSIST创建新实体)。