2016-02-25 106 views
1

我是在写一个逻辑,以在数据库中保存JSON数据与关系多对多(休眠),为此,我有一个控制器类,域类的过程中, dao类,pom和page.jsp文件。弹簧MVC +休眠+ JSON post方法保存到数据库

这是我正在和我试图在数据库中保存的JSON数据

[{"id":1,"vendor":"6456","venedesc":"PHOA TIAN HUI","venupddat":1450320162470},{"id":2,"vendor":"6827","venedesc":"MKS(ENA O) PUTRA , CV","venupddat":145032016243433240}] 

//类用户

@Entity 
    @Table(name = "users") 
    @JsonIgnoreProperties(value = { "role", "enabled", "password" }, ignoreUnknown = true) 
    public class User { 
     @Id 
     @GeneratedValue 
     private Integer idUser;  
     private String firstname; 
     private String lastname; 
     @ManyToMany(fetch = FetchType.EAGER) 
     @JoinTable(name = "USER_VENDOR", joinColumns = { @JoinColumn(name = "idUser") }, inverseJoinColumns = {@JoinColumn(name = "ID") }) 
     private Set<Vendor> vendors = new HashSet<Vendor>();//getter setter 

和我的课厂商

@Entity 
     public class Vendor { 
      @[email protected] 
      @Column(name = "ID") 
      private Integer id; 
      @Column(name = "vendor") 
      private String vendor; 
     //getter setter 

控制器

@RequestMapping("/tambah") //to get JSON 
    public @ResponseBody List<Vendor> getVendor(){ 
     List<Vendor> list = vendorService.getall(); 
     return list; 
    } 

@RequestMapping(value = "/save", method = RequestMethod.POST)//to save 
public ModelAndView addUser(@ModelAttribute("user") User user, RedirectAttributes redirectAttributes,Model model) {userService.addUser(user); 
    ModelAndView modelAndView = new ModelAndView("redirect:/admin/role/user");return modelAndView;} 

供应商页面

<form:form commandName="user" action="${pageContext.request.contextPath }/admin/role/user/save" method="post" cssClass="form-horizontal addModalForm"> 
     <div class="modal fade" id="addModalForm" role="dialog" aria-labelledby="modalLabel" aria-hidden="true">  
<div><div> 
    <label class="col-sm-2 control-label">Vendor:</label> 
<form:select id ="vendorJSON" path="vendors" /> 

    </div></div> 
<button type="submit" ><span class="glyphicon glyphicon-ok-circle"></span> Simpan</button> 

    <script type="text/javascript"> 
     var $select = $('#vendorJSON'); 
       $.getJSON("${pageContext.request.contextPath }/admin/role/user/tambah", function(data) { 
         $select.html(''); 
         $.each(data, function(key, val){ 
        $select.append('<option id="' + val.id + '">' + val.venedesc + '</option>');}) 
        $('#detailVendor').html(data.id);}); 
     $('#addModalForm').modal(); 

和我的聚甲醛

jackson-mapper-asl.version 1.9.13 
    jackson.version 2.5.4 
    spring.version 3.2.8.RELEASE 
    hibernate.version 4.2.8.Final 

我不知道发生什么事,因为只显示HTTP状态400

+1

看着你的服务器日志:你肯定* *找到更多的信息不仅仅是“HTTP 400”。在这里寻找一些故障排除提示:Spring MVC的 - HTTP状态代码400(错误请求)丢失的字段,它被定义为不需要(http://stackoverflow.com/questions/17858537/spring-mvc-http-status -code-400-坏请求对缺失场 - 这此结果defin)。 ALSO:1)得到[提琴手](http://www.telerik.com/fiddler),和2)使能[Hibernate日志](http://javarticles.com/2015/06/enabling-logging-in-hibernate .html) – paulsm4

+1

看起来像通过GET请求发送数据,但您的控制器期望发布请求。 – Jens

+0

不显示服务器日志失败,只显示最后一个查询选择。 和我一直在使用GET请求,但仍然一样。 – user151968

回答

1

如果你得到错误代码400这意味着HTTP请求发送是错误的。无需查看休眠或数据库,问题出现在那之前。

检查由浏览器发送的HTTP POST的内容,还要检查其发送到URL,并确保这些都符合什么是在控制器配置。

+0

如何从jquery更改值发件人,jquery设置为供应商和_vendor? – user151968