【发布时间】:2016-09-14 07:25:46
【问题描述】:
这里有两个实体,一个是Customer,一个是Order,一个customer可以获取多个Order,最后我在controller中使用springmvc返回了一个Customer对象,但是总是给我sqlgrammer错误,jackson-bind可以吗处理一对多问题? 这是控制器中的代码sn-p:
@RequestMapping(value = "/getCustomer", method = RequestMethod.GET)
public @ResponseBody Customer getCustomer(){
Customer customer = new Customer();
customer.setRecord("Crabime");
customer.setGender("male");
Order order = new Order("vegitable", 12.1);
Order order1 = new Order("fruit", 3.2);
Set<Order> set = new HashSet<Order>();
set.add(order);
set.add(order1);
customer.setOrders(set);
customerService.save(customer);
return customer;
}
和错误跟踪
org.springframework.web.util.NestedServletException: 请求 处理失败;嵌套异常是 org.hibernate.exception.SQLGrammarException:无法执行 声明
客户实体
@Entity
@Table(name = "customer")
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String record;
private String gender;
@OneToMany(fetch = FetchType.EAGER,cascade = {CascadeType.ALL}, mappedBy = "customer")
private Set<Order> orders;
public Customer(){}
...omit setter and getter...
这是命令:
@Entity
@Table(name = "order")
public class Order {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private double price;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "customer_id")
private Customer customer;
public Order() {
}
public Order(String name, double price) {
this.name = name;
this.price = price;
}
...omit setter and getter...
**更新:**可能是tomcat缓存问题,我记得当时重启了服务器,没有任何改变,但是在关闭项目几个小时后重新打开它,好的!
【问题讨论】:
-
提供你的DAO代码,休眠保存客户...
-
@shantaram 不,这两个问题之间存在很大差异
-
session.save(customer) ?
-
你的 sql 结果是什么?只是看看。你的数据库呢?
标签: java hibernate spring-mvc jackson