OneToMany弹簧形式问题

时间:2015-05-23 11:24:18

标签: java spring hibernate jsp one-to-many

在尝试为OneToMany Mapping创建弹簧形式时,我收到了以下错误

  

org.springframework.beans.NotReadablePropertyException:bean类的无效属性'reminder [0] .id'[com.medicine.yourmedics.model.Medication _ $$ _ jvst99a_7]:字段'提醒[0] .id'没有存在

我的Pojo药物课程是

@Entity
@Table(name = "MEDICATION")
@JsonAutoDetect
public class Medication {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id", unique = true, nullable = false)

@OneToMany(mappedBy = "medication")
private List<Reminder> reminder = new ArrayList<Reminder>();

提醒Pojo看起来像

public class Reminder {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id", unique = true, nullable = false)
private int id;

@ManyToOne
@JoinColumn(name = "medication_id")
private Medication medication;

我已经创建了一个药物表单,我试图访问提醒ID

<c:forEach items="${medication.reminder}" varStatus="loop">
    <form:input path="reminder[${loop.index}].id" />
</c:forEach>

请帮帮我们。我很难在这里找到问题。

1 个答案:

答案 0 :(得分:0)

根据Java Doc对@OneToMany ...

  

(可选)是否关联   应该懒散地加载或必须急切地取出。 EAGER战略   是持久性提供程序运行时的要求   必须热切地提取相关实体。 LAZY策略是一个   提示持久性提供程序运行时。

     

默认:   javax.persistence.FetchType.LAZY

尝试@OneToMany(mappedBy = "medication", fetch = FetchType.EAGER)让hibernate急切地加载列表中的数据,而不是提供代理