Hibernate 在bean中插入数据时出错
我正在尝试按具有以下字段的表顺序插入数据: id PK, cid FK, pid FK 我试图在这个order bean中插入数据 这是我的JSP代码:Hibernate 在bean中插入数据时出错,hibernate,jsp,spring-mvc,jstl,Hibernate,Jsp,Spring Mvc,Jstl,我正在尝试按具有以下字段的表顺序插入数据: id PK, cid FK, pid FK 我试图在这个order bean中插入数据 这是我的JSP代码: <form:form> <form:hidden path="id"/> <table cellpadding="2px"> <tr><td><label>Customer ID</label></td><td>&
<form:form>
<form:hidden path="id"/>
<table cellpadding="2px">
<tr><td><label>Customer ID</label></td><td><form:input path="cid"/><form:errors path="cid" /></td></tr>
<tr><td><label>Package ID</label></td><td><form:input path="pid"/><form:errors path="pid" /></td></tr>
<tr align="center"><td colspan="2"><input type="submit" value="Save Changes" /></td></tr>
</table>
</form:form>
@RequestMapping(value="/editorder", method=RequestMethod.GET)
public String EditPerson(Model model){
model.addAttribute("command", new Order());
return "/WEB-INF/pages/orders/editorder.jsp";
}
我遇到了错误:(我在这里只提到了根本原因)
根本原因
org.springframework.beans.NotReadablePropertyException:bean类[com.order.domain.order]的无效属性'cid':bean属性'cid'不可读或具有无效的getter方法:getter的返回类型是否与setter的参数类型匹配
有什么解决办法吗
Here is Order bean:
package com.order.domain;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name="orders")
public class Order extends BaseEntity{
@ManyToOne
@JoinColumn(name="cid")
private Customer customer;
@ManyToOne
@JoinColumn(name="pid")
private Packagee package1;
@OneToMany(mappedBy="order")
private List<Feedback> feedbacks;
public Customer getCustomer() {
return customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
public Packagee getPackage1() {
return package1;
}
public void setPackage1(Packagee package1) {
this.package1 = package1;
}
public List<Feedback> getFeedbacks() {
return feedbacks;
}
public void setFeedbacks(List<Feedback> feedbacks) {
this.feedbacks = feedbacks;
}
}
以下是订单bean:
包com.order.domain;
导入java.util.List;
导入javax.persistence.Entity;
导入javax.persistence.JoinColumn;
导入javax.persistence.manytone;
导入javax.persistence.OneToMany;
导入javax.persistence.Table;
@实体
@表(name=“orders”)
公共类顺序扩展了BaseEntity{
@许多酮
@JoinColumn(name=“cid”)
私人客户;
@许多酮
@JoinColumn(name=“pid”)
私人包装1;
@OneToMany(mappedBy=“订单”)
私有列表反馈;
公共客户getCustomer(){
退货客户;
}
公共作废设置客户(客户){
this.customer=customer;
}
公共包getPackage1(){
退货包装1;
}
公共无效设置package1(Packagee package1){
this.package1=package1;
}
公共列表getFeedbacks(){
反馈;
}
公共反馈(列表反馈){
这个。反馈=反馈;
}
}
错误消息显示:
bean类[com.order.domain.order]的属性“cid”无效:bean属性“cid”不可读或具有无效的getter方法
因此,Spring正在类com.order.domain.order
中寻找属性cid
的getter:
public Long getCid() {
...
}
而且你们班上没有这样的getter。你仔细阅读了错误消息了吗?有什么你不明白的?考虑到它讨论的是com.order.domain.order类的getter和setter,您不认为这个类的代码可能相关吗?我仔细检查了它,但没有发现错误。我在bean中添加了一个getter,如下所示:public int getCid(){return customer.getId();}但它再次给出了错误,错误是:HTTP Status 500-org.springframework.beans.InvalidPropertyException:bean类[com.order.domain.order]的无效属性“cid]:属性“cid”的Getter抛出异常;嵌套异常是java.lang.reflect.InvocationTargetException,然后确保getter不会引发异常。