基于Spring JPA注释的Web应用程序

时间:2015-04-15 19:55:33

标签: spring jpa eclipselink

我有来自Controller的请求对象的JSON消息。     我试图将对象映射到Controller类中的模型类,但无法这样做。  任何人都可以帮我解决这个问题。

package com.firm.trayportal.contoller;

import java.sql.Types;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.firm.trayportal.jparepository.trayMoveRepository;
import com.firm.trayportal.jparepository.LocationRepository;
import com.firm.trayportal.jparepository.StopoffRepository;
import com.firm.trayportal.model.trayMove;
import com.firm.trayportal.model.Location;
import com.firm.trayportal.model.Stopoff;
import com.firm.trayportal.service.trayMoveService;

@RestController
public class trayPortalquoteController {
/*  @Autowired
    JdbcTemplate template;*/

    private trayMove trayMove;
    private Location location;
    private Stopoff stopoff;

    // Service Layer

    private trayMoveService trayMoveService;

    private static final Logger logger = Logger
            .getLogger(trayPortalquoteController.class);

    @RequestMapping(value = "/quote", method = RequestMethod.POST, consumes = {MediaType.APPLICATION_JSON_VALUE}, produces = {MediaType.APPLICATION_JSON_VALUE} )
    public ThumbsUp getActivetrayOrder(HttpServletRequest request, @RequestBody trayquoteRto rto) { 
        logger.debug("Start processing");
        if (rto != null) {
            logger.debug(String.format("Driver: %s/Load Number: %s/Stop %s",
                    rto.getDriver(), rto.getLn(), rto.getStops() != null
                            && rto.getStops().get(0) != null ? rto.getStops()
                            .get(0).getStop() : "?"));

            /*
             * Querying String insertSql =
             * "insert into tray_move (move_type, carrier_id, ln) values(?,?,?)"
             * ;
             * 
             * Object[] params = new Object[] {rto.getType(), rto.getDriver(),
             * rto.getLn()}; // define SQL types of the arguments int[] types =
             * new int[] { Types.VARCHAR, Types.VARCHAR, Types.VARCHAR};
             */

            // execute insert query to insert the data
            // return number of row / rows processed by the executed query
            try {
                // int row = template.update(insertSql, params, types);
                trayMove trayMove = new trayMove();
                trayMove = savetrayInfo(rto);
            //  trayMoveService.populate(trayMove); // return type ?
                // trayMove row = trayMoveRepo.saveAndFlush(trayMove);

                // logger.debug(row + " row inserted.");
            } catch (Exception _ex) {
                logger.debug("Exception executing sql query:( Message: "
                        + _ex.getMessage());
                logger.debug("Exception executing sql query:( Message: "
                        + _ex.getStackTrace());
            }
        } else {
            logger.debug("quote RTO is NULL");
        }

        return new ThumbsUp();
    }

    private Stopoff saveStopOff(trayquoteRto rto) {
        // TODO Auto-generated method stub
        return null;
    }

    private Location saveLocationInfo(trayquoteRto rto) {
        // TODO Auto-generated method stub
        return null;
    }

    public trayMove savetrayInfo(trayquoteRto rto) {
        System.out.println("In savetrayInfo method");
        //trayMove.setMoveId(100005);       
        trayMove.setMoveType("IPU");
        System.out.println("In savetrayInfo MoveType");
        System.out.println("setMoveType");
        trayMove.setCarrierId(rto.getDriver());
        trayMove.setLn(rto.getLn());
        // TODO:rto.getName(); ??
        trayMove.setShippersno(rto.getShippersno());

        return trayMove;
    }

    public Location saveLocInfo(trayquoteRto rto) {
        // location.set
        // location.setAddress1(address1);
        return location;
    }

}

/*
 * create table tray_move ( move_type varchar(16), carrier_id varchar(32), ln
 * varchar(32) );
 */

class trayquoteRto {
    private String type;
    private String driver;
    private String ln;
    private String shippersno;
    private String oramplocation;
    private String orampadd1;
    private String orampadd2;
    private String orampphone;
    private String orampstate;
    private String orampzip;
    private String dramplocation;
    private String drampadd1;
    private String drampadd2;
    private String drampphone;
    private String drampstate;
    private String drampzip;

    private List<Stops> stops = new ArrayList<Stops>();

    public String getType() {
        return type;
    }

    public String getDriver() {
        return driver;
    }

    public String getLn() {
        return ln;
    }

    public String getShippersno() {
        return shippersno;
    }

    public String getOramplocation() {
        return oramplocation;
    }

    public String getOrampadd1() {
        return orampadd1;
    }

    public String getOrampadd2() {
        return orampadd2;
    }

    public String getOrampphone() {
        return orampphone;
    }

    public String getOrampstate() {
        return orampstate;
    }

    public String getOrampzip() {
        return orampzip;
    }

    public String getDramplocation() {
        return dramplocation;
    }

    public String getDrampadd1() {
        return drampadd1;
    }

    public String getDrampadd2() {
        return drampadd2;
    }

    public String getDrampphone() {
        return drampphone;
    }

    public String getDrampstate() {
        return drampstate;
    }

    public String getDrampzip() {
        return drampzip;
    }

    public List<Stops> getStops() {
        return stops;
    }

}

class Stops {
    String name;
    String add1;
    String add2;
    String city;
    String ext;
    String phone;
    String st;
    String zip;
    Integer stop;
    Date apptment1;
    Date apptment2;

    public String getName() {
        return name;
    }

    public String getAdd1() {
        return add1;
    }

    public String getAdd2() {
        return add2;
    }

    public String getCity() {
        return city;
    }

    public String getExt() {
        return ext;
    }

    public String getPhone() {
        return phone;
    }

    public String getSt() {
        return st;
    }

    public String getZip() {
        return zip;
    }

    public Date getApptment1() {
        return apptment1;
    }

    public Date getApptment2() {
        return apptment2;
    }

    public Integer getStop() {
        return stop;
    }
}

class ThumbsUp {
    private String message = "success";

    public String getMessage() {
        return message;
    }
}

@Service
@Repository
public class trayMoveService {

    @Autowired
    private trayMoveRepository trayMoveRepo;


    @Qualifier("trayMove")
    public void populate(trayMove dm) {
        trayMoveRepo.saveAndFlush(dm);
    }

}

@Transactional
public interface trayMoveRepository extends JpaRepository<trayMove, Integer>{

}

setter方法不起作用。我想我缺少一些注释。有人可以指导我参加教程吗?         该应用程序是基于Spring JPA(EclipseLink)的注释。

0 个答案:

没有答案