【问题标题】:OneToMany spring form issueOneToMany 弹簧表单问题
【发布时间】:2015-08-05 09:13:31
【问题描述】:

在尝试为 OneToMany 映射创建弹簧表单时,我收到以下错误

org.springframework.beans.NotReadablePropertyException:bean 类 [com.medicine.yourmedics.model.Medication_$$_jvst99a_7] 的无效属性 'reminder[0].id':字段 'reminder[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>

请帮帮我。我很难找出其中的问题。

【问题讨论】:

  • bean 中有 getter 和 setter 吗?
  • 是的,我在两个 bean 中都有 getter 和 setter
  • 你为什么没有private int id;在用药?
  • 这是一个错字。在实际代码中
  • 在jsp中显示控制器GET方法和完整形式。

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


【解决方案1】:

根据Java Doc @OneToMany...

(可选)是否关联 应该延迟加载或必须急切地获取。渴望战略 是对持久性提供程序运行时的要求,即 必须急切地获取关联的实体。 LAZY 策略是 提示持久性提供程序运行时。

默认值: javax.persistence.FetchType.LAZY

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

【讨论】:

  • 试过了。但仍然是同样的问题。还有什么我可以尝试的吗
猜你喜欢
  • 2012-05-22
  • 2012-05-15
  • 2016-07-09
  • 2020-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-20
  • 1970-01-01
相关资源
最近更新 更多