Spring mvc module not updating values properly.updating as a new row - java
when I am updating a value in the table that value is added as a new row. not updated current row.I keep going over the code, but I cannot see where the problem is. Can someone show me what to change in the below?
Here are the relevant methods of Webpagecontroller file:
#SuppressWarnings("deprecation")
#RequestMapping(value = "/updateMvPoles",method = RequestMethod.GET, produces = "application/json")
public #ResponseBody void updateMvPoles(#RequestParam("id") String id,#RequestParam("poleno") String poleno,
#RequestParam("polename") String polename,#RequestParam("poletype") String poletype,#RequestParam("poleheight") String poleheight,
#RequestParam("WorkingLoad") String workingload,#RequestParam("pstatus") String pstatus,#RequestParam("gpslatitude") String gpslatitude,#RequestParam("gpslongitude") String gpslongitude,
#RequestParam("kv33conductorcct3") String kv33conductorcct3,#RequestParam("earthdownconductor") String earthdownconductor,#RequestParam("nooflvcct") String nooflvcct,
#RequestParam("kv33conductorcct2") String kv33conductorcct2,#RequestParam("kv33conductorcct1") String kv33conductorcct1,#RequestParam("hvlvcombinerun") String hvlvcombinerun,
#RequestParam("kv11conductorcct2") String kv11conductorcct2,#RequestParam("kv11conductorcct1") String kv11conductorcct1,#RequestParam("kv11conductorcct3") String kv11conductorcct3,
#RequestParam("streetlight") String streetlight,#RequestParam("noof33kvcircuits") String noof33kvcircuits,#RequestParam("noof11kvcircuits") String noof11kvcircuits,
#RequestParam("lvconductortype") String lvconductortype,#RequestParam("crossarm") String crossarm)
{
//provinceDao.updateProvince(province,id,status);
try{
System.out.println("hiiiiii66666");
MmsAddmvpole obj = new MmsAddmvpole();
obj = mvPoleDao.findById(Long.valueOf(id));
obj.setId(new Long(id));
obj.setPoleNo(poleno);
obj.setPoleName(polename);
obj.setPoleType(new BigDecimal(poletype));
obj.setPoleHeight(new BigDecimal(poleheight));
obj.setWorkingLoad(new BigDecimal(workingload));
obj.setStatus(new BigDecimal(pstatus));
obj.setGpsLatitude(new BigDecimal(gpslatitude));
obj.setGpsLongitude(new BigDecimal(gpslongitude));
obj.setKv33ConductorCct3(new BigDecimal(kv33conductorcct3));
obj.setEarthConductor(new BigDecimal(earthdownconductor));
obj.setNoOfLvCct(new BigDecimal(nooflvcct));
obj.setKv33ConductorCct2(new BigDecimal(kv33conductorcct2));
obj.setKv33ConductorCct1(new BigDecimal(kv33conductorcct1));
obj.setHvLvCombineRun(new BigDecimal(hvlvcombinerun));
obj.setKv11ConductorCct2(new BigDecimal(kv11conductorcct2));
obj.setKv11ConductorCct1(new BigDecimal(kv11conductorcct1));
obj.setKv11ConductorCct3(new BigDecimal(kv11conductorcct3));
obj.setStreetLight(new BigDecimal(streetlight));
obj.setNoOf33Kvcircuits(new BigDecimal(noof33kvcircuits));
obj.setNoOf11Kvcircuits(new BigDecimal(noof11kvcircuits));
obj.setLvConductorType(new BigDecimal(lvconductortype));
obj.setCrossArm(new BigDecimal(crossarm));
mvPoleDao.update(obj);
}catch(Exception e){
}
}
Here is function for update button in editMVPoleNew.jsp
function saveAll() {
//alert('hiiiii');
var len = arrayDataToSave.length
for (var count = 0; count < len; count++) {
var pid = arrayDataToSave[count];
var poleNo = document.getElementById("poleNo_" + pid).value;
var poleName = document.getElementById("poleName_" + pid).value;
var poleType = document.getElementById("poleType_" + pid).value;
var poleHeight = document.getElementById("poleHeight_" + pid).value;
var workingLoad = document.getElementById("workingLoad_" + pid).value;
var pstatus = document.getElementById("pstatus_" + pid).value;
var gps_latitude= document.getElementById("gps_latitude_"+ pid).value;
var gps_longitude = document.getElementById("gps_longitude_" + pid).value;
var kV33Conductorcct_3= document.getElementById("kV33Conductorcct_3_" + pid).value
var EarthDownconductor = document.getElementById("EarthDownconductor_" + pid).value
var NoofLVcct=document.getElementById("NoofLVcct_" + pid).value
var kV33Conductorcct_2=document.getElementById("kV33Conductorcct_2_" + pid).value
var kV33Conductorcct_1=document.getElementById("kV33Conductorcct_1_" + pid).value
var HVLVCombineRun=document.getElementById("HVLVCombineRun_" + pid).value
var kV11Conductorcct_2=document.getElementById("kV11Conductorcct_2_"+ pid).value
var kV11Conductorcct_1=document.getElementById("kV11Conductorcct_1_" +pid). value
var kV11Conductorcct_3=document.getElementById("kV11Conductorcct_3_"+ pid).value
var StreetLight=document.getElementById("StreetLight_"+ pid).value
var Noof33kVCircuits=document.getElementById("Noof33kVCircuits_"+ pid).value
var Noof11kVCircuits=document.getElementById("Noof11kVCircuits_" + pid).value
var LVConductortype=document.getElementById("LVConductortype_"+ pid).value
var CrossArm=document.getElementById("CrossArm_" + pid).value
var url = "/MMS/updateMvPoles?id=" +pid+ "&poleno=" +poleNo+ "&polename=" +poleName+ "&poletype=" +poleType+
"&poleheight=" +poleHeight+ "&WorkingLoad=" +workingLoad+ "&pstatus=" +pstatus+ "&gpslatitude=" +gps_latitude+
"&gpslongitude=" +gps_longitude+ "&kv33conductorcct3=" +kV33Conductorcct_3+ "&earthdownconductor=" +EarthDownconductor+
"&nooflvcct=" +NoofLVcct+ "&kv33conductorcct2=" +kV33Conductorcct_2+ "&kv33conductorcct1=" +kV33Conductorcct_1+ "&hvlvcombinerun=" +HVLVCombineRun+
"&kv11conductorcct2=" +kV11Conductorcct_2+ "&kv11conductorcct1=" +kV11Conductorcct_1+ "&kv11conductorcct3=" +kV11Conductorcct_3+ "&streetlight=" +StreetLight+
"&noof33kvcircuits=" +Noof33kVCircuits+ "&noof11kvcircuits=" +Noof11kVCircuits+ "&lvconductortype=" +LVConductortype+ "&crossarm=" +CrossArm;
// alert('hiiiii' +url);
$.ajax({
type : "GET",
url : url,
success : function(response) {
//alert("Line updated succesfully...");
console.log(response);
window.location.reload();
disable(pid);
}
});
}
alert("Lines updated succesfully... ");
}
Here is MmsAddmvPole.java
#Id
#GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SeqGen")
#SequenceGenerator(name = "SeqGen", sequenceName = "POLEMV_SEQ", allocationSize = 1)
private long id;
private String area;
#Column(name="CROSS_ARM")
private BigDecimal crossArm;
#Column(name="EARTH_CONDUCTOR")
private BigDecimal earthConductor;
#Column(name="GPS_LATITUDE")
private BigDecimal gpsLatitude;
#Column(name="GPS_LONGITUDE")
private BigDecimal gpsLongitude;
#Column(name="HV_LV_COMBINE_RUN")
private BigDecimal hvLvCombineRun;
#Column(name="KV11_CONDUCTOR_CCT_2")
private BigDecimal kv11ConductorCct2;
#Column(name="KV11_CONDUCTOR_CCT_1")
private BigDecimal kv11ConductorCct1;
#Column(name="KV11_CONDUCTOR_CCT_3")
private BigDecimal kv11ConductorCct3;
#Column(name="KV33_CCT_1_PH_1")
private BigDecimal kv33Cct1Ph1;
#Column(name="KV33_CCT_1_PH_2")
private BigDecimal kv33Cct1Ph2;
#Column(name="KV33_CCT_1_PH_3")
private BigDecimal kv33Cct1Ph3;
#Column(name="KV33_CCT_2_PH_1")
private BigDecimal kv33Cct2Ph1;
#Column(name="KV33_CCT_2_PH_2")
private BigDecimal kv33Cct2Ph2;
#Column(name="KV33_CCT_2_PH_3")
private BigDecimal kv33Cct2Ph3;
#Column(name="KV33_CCT_3_PH_1")
private BigDecimal kv33Cct3Ph1;
#Column(name="KV33_CCT_3_PH_2")
private BigDecimal kv33Cct3Ph2;
#Column(name="KV33_CCT_3_PH_3")
private BigDecimal kv33Cct3Ph3;
#Column(name="KV33_CONDUCTOR_CCT_1")
private BigDecimal kv33ConductorCct1;
#Column(name="KV33_CONDUCTOR_CCT_2")
private BigDecimal kv33ConductorCct2;
#Column(name="KV33_CONDUCTOR_CCT_3")
private BigDecimal kv33ConductorCct3;
#Column(name="LINE_END")
private BigDecimal lineEnd;
#Column(name="LV_CONDUCTOR_TYPE")
private BigDecimal lvConductorType;
#Column(name="MV_SWITCH")
private BigDecimal mvSwitch;
#Column(name="NO_OF_11_KVCIRCUITS")
private BigDecimal noOf11Kvcircuits;
#Column(name="NO_OF_33_KVCIRCUITS")
private BigDecimal noOf33Kvcircuits;
#Column(name="NO_OF_LV_CCT")
private BigDecimal noOfLvCct;
#Column(name="NO_OF_CCT")
private BigDecimal noOfCct;
public BigDecimal getNoOfCct() {
return noOfCct;
}
public void setNoOfCct(BigDecimal noOfCct) {
this.noOfCct = noOfCct;
}
#Column(name="PIN_SHACKLE")
private BigDecimal pinShackle;
#Column(name="POLE_HEIGHT")
private BigDecimal poleHeight;
#Column(name="POLE_NAME")
private String poleName;
#Column(name="POLE_NO")
private String poleNo;
#Column(name="POLE_TYPE")
private BigDecimal poleType;
private BigDecimal status;
private BigDecimal stay;
#Column(name="STREET_LIGHT")
private BigDecimal streetLight;
#Column(name="TRANSFORMER_CAPACITY")
private BigDecimal transformerCapacity;
#Column(name="TRANSFORMER_TYPE")
private BigDecimal transformerType;
#Column(name="WORKING_LOAD")
private BigDecimal workingLoad;
private BigDecimal strut;
#Column(name="STRUT_HEIGHT")
private BigDecimal strutHeight;
public BigDecimal getStrutHeight() {
return strutHeight;
}
public void setStrutHeight(BigDecimal strutHeight) {
this.strutHeight = strutHeight;
}
#Column(name="STRUT_TYPE")
private BigDecimal strutType;
public BigDecimal getStrutType() {
return strutType;
}
public void setStrutType(BigDecimal strutType) {
this.strutType = strutType;
}
#Column(name="STRUT_WORKING_LOAD")
private BigDecimal strutWorkingLoad;
public BigDecimal getStrutWorkingLoad() {
return strutWorkingLoad;
}
public void setStrutWorkingLoad(BigDecimal strutWorkingLoad) {
this.strutWorkingLoad = strutWorkingLoad;
}
#Column(name="STAY_TYPE")
private BigDecimal stayType;
public BigDecimal getStayType() {
return stayType;
}
public void setStayType(BigDecimal stayType) {
this.stayType = stayType;
}
public MmsAddmvpole() {
}
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
public String getArea() {
return this.area;
}
public void setArea(String area) {
this.area = area;
}
public BigDecimal getCrossArm() {
return this.crossArm;
}
public void setCrossArm(BigDecimal crossArm) {
this.crossArm = crossArm;
}
public BigDecimal getEarthConductor() {
return this.earthConductor;
}
public void setEarthConductor(BigDecimal earthConductor) {
this.earthConductor = earthConductor;
}
public BigDecimal getGpsLatitude() {
return this.gpsLatitude;
}
public void setGpsLatitude(BigDecimal gpsLatitude) {
this.gpsLatitude = gpsLatitude;
}
public BigDecimal getGpsLongitude() {
return this.gpsLongitude;
}
public void setGpsLongitude(BigDecimal gpsLongitude) {
this.gpsLongitude = gpsLongitude;
}
public BigDecimal getHvLvCombineRun() {
return this.hvLvCombineRun;
}
public void setHvLvCombineRun(BigDecimal hvLvCombineRun) {
this.hvLvCombineRun = hvLvCombineRun;
}
public BigDecimal getKv11ConductorCct1() {
return this.kv11ConductorCct1;
}
public void setKv11ConductorCct1(BigDecimal kv11ConductorCct1) {
this.kv11ConductorCct1 = kv11ConductorCct1;
}
public BigDecimal getKv11ConductorCct2() {
return this.kv11ConductorCct2;
}
public void setKv11ConductorCct2(BigDecimal kv11ConductorCct2) {
this.kv11ConductorCct2 = kv11ConductorCct2;
}
public BigDecimal getKv11ConductorCct3() {
return this.kv11ConductorCct3;
}
public void setKv11ConductorCct3(BigDecimal kv11ConductorCct3) {
this.kv11ConductorCct3 = kv11ConductorCct3;
}
public BigDecimal getKv33Cct1Ph1() {
return this.kv33Cct1Ph1;
}
public void setKv33Cct1Ph1(BigDecimal kv33Cct1Ph1) {
this.kv33Cct1Ph1 = kv33Cct1Ph1;
}
public BigDecimal getKv33Cct1Ph2() {
return this.kv33Cct1Ph2;
}
public void setKv33Cct1Ph2(BigDecimal kv33Cct1Ph2) {
this.kv33Cct1Ph2 = kv33Cct1Ph2;
}
public BigDecimal getKv33Cct1Ph3() {
return this.kv33Cct1Ph3;
}
public void setKv33Cct1Ph3(BigDecimal kv33Cct1Ph3) {
this.kv33Cct1Ph3 = kv33Cct1Ph3;
}
public BigDecimal getKv33Cct2Ph1() {
return this.kv33Cct2Ph1;
}
public void setKv33Cct2Ph1(BigDecimal kv33Cct2Ph1) {
this.kv33Cct2Ph1 = kv33Cct2Ph1;
}
public BigDecimal getKv33Cct2Ph2() {
return this.kv33Cct2Ph2;
}
public void setKv33Cct2Ph2(BigDecimal kv33Cct2Ph2) {
this.kv33Cct2Ph2 = kv33Cct2Ph2;
}
public BigDecimal getKv33Cct2Ph3() {
return this.kv33Cct2Ph3;
}
public void setKv33Cct2Ph3(BigDecimal kv33Cct2Ph3) {
this.kv33Cct2Ph3 = kv33Cct2Ph3;
}
public BigDecimal getKv33Cct3Ph1() {
return this.kv33Cct3Ph1;
}
public void setKv33Cct3Ph1(BigDecimal kv33Cct3Ph1) {
this.kv33Cct3Ph1 = kv33Cct3Ph1;
}
public BigDecimal getKv33Cct3Ph2() {
return this.kv33Cct3Ph2;
}
public void setKv33Cct3Ph2(BigDecimal kv33Cct3Ph2) {
this.kv33Cct3Ph2 = kv33Cct3Ph2;
}
public BigDecimal getKv33Cct3Ph3() {
return this.kv33Cct3Ph3;
}
public void setKv33Cct3Ph3(BigDecimal kv33Cct3Ph3) {
this.kv33Cct3Ph3 = kv33Cct3Ph3;
}
public BigDecimal getKv33ConductorCct1() {
return this.kv33ConductorCct1;
}
public void setKv33ConductorCct1(BigDecimal kv33ConductorCct1) {
this.kv33ConductorCct1 = kv33ConductorCct1;
}
public BigDecimal getKv33ConductorCct2() {
return this.kv33ConductorCct2;
}
public void setKv33ConductorCct2(BigDecimal kv33ConductorCct2) {
this.kv33ConductorCct2 = kv33ConductorCct2;
}
public BigDecimal getKv33ConductorCct3() {
return this.kv33ConductorCct3;
}
public void setKv33ConductorCct3(BigDecimal kv33ConductorCct3) {
this.kv33ConductorCct3 = kv33ConductorCct3;
}
public BigDecimal getLineEnd() {
return this.lineEnd;
}
public void setLineEnd(BigDecimal lineEnd) {
this.lineEnd = lineEnd;
}
public BigDecimal getLvConductorType() {
return this.lvConductorType;
}
public void setLvConductorType(BigDecimal lvConductorType) {
this.lvConductorType = lvConductorType;
}
public BigDecimal getMvSwitch() {
return this.mvSwitch;
}
public void setMvSwitch(BigDecimal mvSwitch) {
this.mvSwitch = mvSwitch;
}
public BigDecimal getNoOf11Kvcircuits() {
return this.noOf11Kvcircuits;
}
public void setNoOf11Kvcircuits(BigDecimal noOf11Kvcircuits) {
this.noOf11Kvcircuits = noOf11Kvcircuits;
}
public BigDecimal getNoOf33Kvcircuits() {
return this.noOf33Kvcircuits;
}
public void setNoOf33Kvcircuits(BigDecimal noOf33Kvcircuits) {
this.noOf33Kvcircuits = noOf33Kvcircuits;
}
public BigDecimal getNoOfLvCct() {
return this.noOfLvCct;
}
public void setNoOfLvCct(BigDecimal noOfLvCct) {
this.noOfLvCct = noOfLvCct;
}
public BigDecimal getPinShackle() {
return this.pinShackle;
}
public void setPinShackle(BigDecimal pinShackle) {
this.pinShackle = pinShackle;
}
public BigDecimal getPoleHeight() {
return this.poleHeight;
}
public void setPoleHeight(BigDecimal poleHeight) {
this.poleHeight = poleHeight;
}
public String getPoleName() {
return this.poleName;
}
public void setPoleName(String poleName) {
this.poleName = poleName;
}
public String getPoleNo() {
return this.poleNo;
}
public void setPoleNo(String poleNo) {
this.poleNo = poleNo;
}
public BigDecimal getPoleType() {
return this.poleType;
}
public void setPoleType(BigDecimal poleType) {
this.poleType = poleType;
}
public BigDecimal getStatus() {
return this.status;
}
public void setStatus(BigDecimal status) {
this.status = status;}
public BigDecimal getStay() {
return this.stay;
}
public void setStay(BigDecimal stay) {
this.stay = stay;
}
public BigDecimal getStreetLight() {
return this.streetLight;
}
public void setStreetLight(BigDecimal streetLight) {
this.streetLight = streetLight;
}
public BigDecimal getStrut() {
return this.strut;
}
public void setStrut(BigDecimal strut) {
this.strut = strut;
}
public BigDecimal getTransformerCapacity() {
return this.transformerCapacity;
}
public void setTransformerCapacity(BigDecimal transformerCapacity) {
this.transformerCapacity = transformerCapacity;
}
public BigDecimal getTransformerType() {
return this.transformerType;
}
public void setTransformerType(BigDecimal transformerType) {
this.transformerType = transformerType;
}
public BigDecimal getWorkingLoad() {
return this.workingLoad;
}
public void setWorkingLoad(BigDecimal workingLoad) {
this.workingLoad = workingLoad;
}
Related
Getting null from POJO after using JACKSON ObjectMapper
I'm struggling whit this problem for a while and can't find a solution. My intention is to retrieve a POJO from the following JSON using Jackson: { "date": "2018-11-27", "rates": { "BGN": 1.9558, "CAD": 1.5018, "BRL": 4.4011, "HUF": 324.06, "DKK": 7.4617, "JPY": 128.66, "ILS": 4.2215, "TRY": 5.9313, "RON": 4.6583, "GBP": 0.88748, "PHP": 59.439, "HRK": 7.4275, "NOK": 9.7325, "USD": 1.1328, "MXN": 23.1784, "AUD": 1.5631, "IDR": 16410.59, "KRW": 1279.17, "HKD": 8.8679, "ZAR": 15.632, "ISK": 141, "CZK": 25.914, "THB": 37.371, "MYR": 4.7498, "NZD": 1.6647, "PLN": 4.2902, "SEK": 10.2823, "RUB": 75.6401, "CNY": 7.8708, "SGD": 1.5582, "CHF": 1.1309, "INR": 80.162 }, "base": "EUR" } I solved it with the following code: public class JsonToPojo { private static final String URL_LATEST = "https://api.exchangeratesapi.io/latest"; public static String getJson() { try { URL url = new URL(URL_LATEST); HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection(); urlConnection.setRequestMethod("GET"); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = bufferedReader.readLine()) != null) { System.out.println(inputLine); response.append(inputLine); } bufferedReader.close(); urlConnection.disconnect(); return response.toString(); } catch (IOException e) { e.getStackTrace(); return null; } } } This is my POJO: public class Currency { private String date; private Rates rates; private String base; public String getBase() { return base; } public void setBase(String base) { this.base = base; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public Rates getRates() { return rates; } public void setRates(Rates rates) { this.rates = rates; } } Class using ObjectMapper: public class CurrencyService { public static Currency getLatestCurrency(){ try { ObjectMapper mapper = new ObjectMapper(); Currency currency = mapper.readValue(JsonToPojo.getJson(), Currency.class); return currency; }catch (IOException e){ e.getStackTrace(); return null; } } } When I'm trying to call the get method on my POJO object, I'm getting a NullPointException, so something is wrong with databinding. my Rates class. public class Rates { private float BGN; private float CAD; private float BRL; private float HUF; private float DKK; private float JPY; private float ILS; private float TRY; private float RON; private float GBP; private float PHP; private float HRK; private float NOK; private float ZAR; private float MXD; private float AUD; private float USD; private float KRW; private float HKD; private float EUR; private float ISK; private float CZK; private float THB; private float MYR; private float NZD; private float PLN; private float CHF; private float SEK; private float CNY; private float SGD; private float INR; private float IDR; private float RUB; public void setBGN(Float BGN) { this.BGN = BGN; } public void setCAD(Float CAD) { this.CAD = CAD; } public void setBRL(Float BRL) { this.BRL = BRL; } public void setHUF(Float HUF) { this.HUF = HUF; } public void setDKK(Float DKK) { this.DKK = DKK; } public void setJPY(Float JPY) { this.JPY = JPY; } public void setILS(Float ILS) { this.ILS = ILS; } public void setTRY(Float TRY) { this.TRY = TRY; } public void setRON(Float RON) { this.RON = RON; } public void setGBP(Float GBP) { this.GBP = GBP; } public void setPHP(Float PHP) { this.PHP = PHP; } public void setHRK(Float HRK) { this.HRK = HRK; } public void setNOK(Float NOK) { this.NOK = NOK; } public void setZAR(Float ZAR) { this.ZAR = ZAR; } public void setMXD(Float MXD) { this.MXD = MXD; } public void setAUD(Float AUD) { this.AUD = AUD; } public void setUSD(Float USD) { this.USD = USD; } public void setKRW(Float KRW) { this.KRW = KRW; } public void setHKD(Float HKD) { this.HKD = HKD; } public void setEUR(Float EUR) { this.EUR = EUR; } public void setISK(Float ISK) { this.ISK = ISK; } public void setCZK(Float CZK) { this.CZK = CZK; } public void setTHB(Float THB) { this.THB = THB; } public void setMYR(Float MYR) { this.MYR = MYR; } public void setNZD(Float NZD) { this.NZD = NZD; } public void setPLN(Float PLN) { this.PLN = PLN; } public void setCHF(Float CHF) { this.CHF = CHF; } public void setSEK(Float SEK) { this.SEK = SEK; } public void setCNY(Float CNY) { this.CNY = CNY; } public void setSGD(Float SGD) { this.SGD = SGD; } public void setINR(Float INR) { this.INR = INR; } public void setIDR(Float IDR) { this.IDR = IDR; } public void setRUB(Float RUB) { this.RUB = RUB; } public Float getBGN() { return BGN; } public Float getCAD() { return CAD; } public Float getBRL() { return BRL; } public Float getHUF() { return HUF; } public Float getDKK() { return DKK; } public Float getJPY() { return JPY; } public Float getILS() { return ILS; } public Float getTRY() { return TRY; } public Float getRON() { return RON; } public Float getGBP() { return GBP; } public Float getPHP() { return PHP; } public Float getHRK() { return HRK; } public Float getNOK() { return NOK; } public Float getZAR() { return ZAR; } public Float getMXD() { return MXD; } public Float getAUD() { return AUD; } public Float getUSD() { return USD; } public Float getKRW() { return KRW; } public Float getHKD() { return HKD; } public Float getEUR() { return EUR; } public Float getISK() { return ISK; } public Float getCZK() { return CZK; } public Float getTHB() { return THB; } public Float getMYR() { return MYR; } public Float getNZD() { return NZD; } public Float getPLN() { return PLN; } public Float getCHF() { return CHF; } public Float getSEK() { return SEK; } public Float getCNY() { return CNY; } public Float getSGD() { return SGD; } public Float getINR() { return INR; } public Float getIDR() { return IDR; } public Float getRUB() { return RUB; } }
I've checked your code locally, and have got it working. I didn't have a Rates class, so I used a Map instead (to map the name, with the rate (float)): import java.util.Map; public class Currency { private String date; private Map<String, Float> rates; private String base; public String getBase() { return base; } public void setBase(String base) { this.base = base; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public Map<String, Float> getRates() { return rates; } public Float getSingleRate(String rateKey) { if (rates.containsKey(rateKey)) { return rates.get(rateKey); } return 0.0F; } public void setRates(Map<String, Float> rates) { this.rates = rates; } } I have added the following main() method to your JSonToPojo class: public static void main(String[] args) { ObjectMapper mapper = new ObjectMapper(); Currency currency = new Currency(); String jsonStr = getJson(); try { currency = mapper.readValue(jsonStr, Currency.class); } catch (IOException e) { e.printStackTrace(); } System.out.println(jsonStr); System.out.println(currency.getSingleRate("BGN")); System.out.println("finished"); } Running the main() method, produces the following output (I have used [snip] instead of printing out all the JSon (twice)): {"date":"2018-11-27","rates": {"BGN":1.9558, [snip] } {"date":"2018-11-27","rates": {"BGN":1.9558, [snip] } 1.9558 finished The output for "BGN" is: 1.9558
You can refer to http://www.jsonschema2pojo.org/ to get the correct pojo for your json. Below is the one I created (moderatley modified) You can replace like Object date with Date date and so on. If it doesn't work than there is probably some error in your POJO import com.fasterxml.jackson.annotation.JsonProperty; import java.util.HashMap; import java.util.Map; import com.fasterxml.jackson.annotation.JsonAnyGetter; import com.fasterxml.jackson.annotation.JsonAnySetter; import com.fasterxml.jackson.annotation.JsonIgnore; public class Example { #JsonProperty("date") private Object date; #JsonProperty("rates") private Object rates; #JsonProperty("base") private Object base; #JsonIgnore private Map<String, Object> additionalProperties = new HashMap<String, Object>(); #JsonProperty("date") public Object getDate() { return date; } #JsonProperty("date") public void setDate(Object date) { this.date = date; } #JsonProperty("rates") public Object getRates() { return rates; } #JsonProperty("rates") public void setRates(Object rates) { this.rates = rates; } #JsonProperty("base") public Object getBase() { return base; } #JsonProperty("base") public void setBase(Object base) { this.base = base; } #JsonAnyGetter public Map<String, Object> getAdditionalProperties() { return this.additionalProperties; } #JsonAnySetter public void setAdditionalProperty(String name, Object value) { this.additionalProperties.put(name, value); } #Override public String toString() { return "date:" + date.toString() + ",\nrates:" + rates.toString() + ",\nbase: " + base.toString(); } } And here is the driver class in which you can read the object and pass in the user defined file path ( i have set it to "test-json.json"). You can update this with your local file path address. import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.stream.Collectors; import java.util.stream.Stream; public class Main { public static void main(String... args){ Main main = new Main(); Example example = main.readObjectDataFromJsonFile(Example.class,"test-json.json"); System.out.println(example); } public <T> T readObjectDataFromJsonFile(Class<T> clazz, String jsonFilePath) { T populatedObject = null; try { ObjectMapper objectMapper = new ObjectMapper(); String objectJson = ""; Stream<String> lines = Files.lines(Paths.get(jsonFilePath)); objectJson = lines.collect(Collectors.joining()); lines.close(); populatedObject = objectMapper.readValue(objectJson, clazz); } catch (IOException ioException) { System.out.println("Exception in reading json file"); System.out.println(ioException.getMessage()); } return populatedObject; } }
you can use mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true); without any change to your Pojos, but I had to add MXN as a property to Rates class. But ideal way to handle this is having a Map for the rates. Because it can change any time as I understood, either way its easier for access. So change Currency class as follows. public class Currency { private String date; private Map<String, Float> rates; private String base; // getters and setters } access exchange rates as getRates().get('MXN') // returns value.
Java Reflection to set each methods
I have a problem with setting up each field in my class by using the setter method. For my Object Class i have public class HealthDetails{ private String id; private String name; private String age; private String height; private String data0; private String data1; private String data2; private String data3; private String data4; private String data5; private String data6; private String data7; private String data8; private String data9; private String data10; private String data11; private String data12; private String data13; private String data14; private String data15; private String data16; private String data17; private String data18; private String data19; private String data20; private String data21; private String data22; private String data23; private String data24; private String data25; private String data26; private String data27; private String data28; private String data29; private String data30; private String data31; private String data32; private String data33; private String data34; private String data35; private String data36; private String data37; private String data38; private String data39; private String data40; private String data41; private String data42; private String data43; private String data44; private String data45; private String data46; private String data47; private String data48; private String data49; private String data50; private String data51; private String data52; private String data53; private String data54; private String data55; private String data56; private String data57; private String data58; private String data59; private String data60; private String data61; private String data62; private String data63; private String data64; private String data65; private String data66; private String data67; private String data68; private String data69; private String data70; private String data71; private String data72; private String data73; private String data74; private String data75; private String data76; private String data77; private String data78; private String data79; private String data80; private String data81; private String data82; private String data83; private String data84; private String data85; private String data86; private String data87; private String data88; private String data89; private String data90; private String data91; private String data92; private String data93; private String data94; private String data95; private String data96; private String data97; private String data98; private String data99; private String data100; private String data101; private String data102; private String data103; private String data104; private String data105; private String data106; private String data107; private String data108; private String data109; private String data110; private String data111; private String data112; private String data113; private String data114; private String data115; private String data116; private String data117; private String data118; private String data119; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getHeight() { return height; } public void setHeight(String height) { this.height = height; } public String getData0() { return data0; } public void setData0(String data0) { this.data0 = data0; } public String getData1() { return data1; } public void setData1(String data1) { this.data1 = data1; } public String getData2() { return data2; } public void setData2(String data2) { this.data2 = data2; } public String getData3() { return data3; } public void setData3(String data3) { this.data3 = data3; } public String getData4() { return data4; } public void setData4(String data4) { this.data4 = data4; } public String getData5() { return data5; } public void setData5(String data5) { this.data5 = data5; } public String getData6() { return data6; } public void setData6(String data6) { this.data6 = data6; } public String getData7() { return data7; } public void setData7(String data7) { this.data7 = data7; } public String getData8() { return data8; } public void setData8(String data8) { this.data8 = data8; } public String getData9() { return data9; } public void setData9(String data9) { this.data9 = data9; } public String getData10() { return data10; } public void setData10(String data10) { this.data10 = data10; } public String getData11() { return data11; } public void setData11(String data11) { this.data11 = data11; } public String getData12() { return data12; } public void setData12(String data12) { this.data12 = data12; } public String getData13() { return data13; } public void setData13(String data13) { this.data13 = data13; } public String getData14() { return data14; } public void setData14(String data14) { this.data14 = data14; } public String getData15() { return data15; } public void setData15(String data15) { this.data15 = data15; } public String getData16() { return data16; } public void setData16(String data16) { this.data16 = data16; } public String getData17() { return data17; } public void setData17(String data17) { this.data17 = data17; } public String getData18() { return data18; } public void setData18(String data18) { this.data18 = data18; } public String getData19() { return data19; } public void setData19(String data19) { this.data19 = data19; } public String getData20() { return data20; } public void setData20(String data20) { this.data20 = data20; } public String getData21() { return data21; } public void setData21(String data21) { this.data21 = data21; } public String getData22() { return data22; } public void setData22(String data22) { this.data22 = data22; } public String getData23() { return data23; } public void setData23(String data23) { this.data23 = data23; } public String getData24() { return data24; } public void setData24(String data24) { this.data24 = data24; } public String getData25() { return data25; } public void setData25(String data25) { this.data25 = data25; } public String getData26() { return data26; } public void setData26(String data26) { this.data26 = data26; } public String getData27() { return data27; } public void setData27(String data27) { this.data27 = data27; } public String getData28() { return data28; } public void setData28(String data28) { this.data28 = data28; } public String getData29() { return data29; } public void setData29(String data29) { this.data29 = data29; } public String getData30() { return data30; } public void setData30(String data30) { this.data30 = data30; } public String getData31() { return data31; } public void setData31(String data31) { this.data31 = data31; } public String getData32() { return data32; } public void setData32(String data32) { this.data32 = data32; } public String getData33() { return data33; } public void setData33(String data33) { this.data33 = data33; } public String getData34() { return data34; } public void setData34(String data34) { this.data34 = data34; } public String getData35() { return data35; } public void setData35(String data35) { this.data35 = data35; } public String getData36() { return data36; } public void setData36(String data36) { this.data36 = data36; } public String getData37() { return data37; } public void setData37(String data37) { this.data37 = data37; } public String getData38() { return data38; } public void setData38(String data38) { this.data38 = data38; } public String getData39() { return data39; } public void setData39(String data39) { this.data39 = data39; } public String getData40() { return data40; } public void setData40(String data40) { this.data40 = data40; } public String getData41() { return data41; } public void setData41(String data41) { this.data41 = data41; } public String getData42() { return data42; } public void setData42(String data42) { this.data42 = data42; } public String getData43() { return data43; } public void setData43(String data43) { this.data43 = data43; } public String getData44() { return data44; } public void setData44(String data44) { this.data44 = data44; } public String getData45() { return data45; } public void setData45(String data45) { this.data45 = data45; } public String getData46() { return data46; } public void setData46(String data46) { this.data46 = data46; } public String getData47() { return data47; } public void setData47(String data47) { this.data47 = data47; } public String getData48() { return data48; } public void setData48(String data48) { this.data48 = data48; } public String getData49() { return data49; } public void setData49(String data49) { this.data49 = data49; } public String getData50() { return data50; } public void setData50(String data50) { this.data50 = data50; } public String getData51() { return data51; } public void setData51(String data51) { this.data51 = data51; } public String getData52() { return data52; } public void setData52(String data52) { this.data52 = data52; } public String getData53() { return data53; } public void setData53(String data53) { this.data53 = data53; } public String getData54() { return data54; } public void setData54(String data54) { this.data54 = data54; } public String getData55() { return data55; } public void setData55(String data55) { this.data55 = data55; } public String getData56() { return data56; } public void setData56(String data56) { this.data56 = data56; } public String getData57() { return data57; } public void setData57(String data57) { this.data57 = data57; } public String getData58() { return data58; } public void setData58(String data58) { this.data58 = data58; } public String getData59() { return data59; } public void setData59(String data59) { this.data59 = data59; } public String getData60() { return data60; } public void setData60(String data60) { this.data60 = data60; } public String getData61() { return data61; } public void setData61(String data61) { this.data61 = data61; } public String getData62() { return data62; } public void setData62(String data62) { this.data62 = data62; } public String getData63() { return data63; } public void setData63(String data63) { this.data63 = data63; } public String getData64() { return data64; } public void setData64(String data64) { this.data64 = data64; } public String getData65() { return data65; } public void setData65(String data65) { this.data65 = data65; } public String getData66() { return data66; } public void setData66(String data66) { this.data66 = data66; } public String getData67() { return data67; } public void setData67(String data67) { this.data67 = data67; } public String getData68() { return data68; } public void setData68(String data68) { this.data68 = data68; } public String getData69() { return data69; } public void setData69(String data69) { this.data69 = data69; } public String getData70() { return data70; } public void setData70(String data70) { this.data70 = data70; } public String getData71() { return data71; } public void setData71(String data71) { this.data71 = data71; } public String getData72() { return data72; } public void setData72(String data72) { this.data72 = data72; } public String getData73() { return data73; } public void setData73(String data73) { this.data73 = data73; } public String getData74() { return data74; } public void setData74(String data74) { this.data74 = data74; } public String getData75() { return data75; } public void setData75(String data75) { this.data75 = data75; } public String getData76() { return data76; } public void setData76(String data76) { this.data76 = data76; } public String getData77() { return data77; } public void setData77(String data77) { this.data77 = data77; } public String getData78() { return data78; } public void setData78(String data78) { this.data78 = data78; } public String getData79() { return data79; } public void setData79(String data79) { this.data79 = data79; } public String getData80() { return data80; } public void setData80(String data80) { this.data80 = data80; } public String getData81() { return data81; } public void setData81(String data81) { this.data81 = data81; } public String getData82() { return data82; } public void setData82(String data82) { this.data82 = data82; } public String getData83() { return data83; } public void setData83(String data83) { this.data83 = data83; } public String getData84() { return data84; } public void setData84(String data84) { this.data84 = data84; } public String getData85() { return data85; } public void setData85(String data85) { this.data85 = data85; } public String getData86() { return data86; } public void setData86(String data86) { this.data86 = data86; } public String getData87() { return data87; } public void setData87(String data87) { this.data87 = data87; } public String getData88() { return data88; } public void setData88(String data88) { this.data88 = data88; } public String getData89() { return data89; } public void setData89(String data89) { this.data89 = data89; } public String getData90() { return data90; } public void setData90(String data90) { this.data90 = data90; } public String getData91() { return data91; } public void setData91(String data91) { this.data91 = data91; } public String getData92() { return data92; } public void setData92(String data92) { this.data92 = data92; } public String getData93() { return data93; } public void setData93(String data93) { this.data93 = data93; } public String getData94() { return data94; } public void setData94(String data94) { this.data94 = data94; } public String getData95() { return data95; } public void setData95(String data95) { this.data95 = data95; } public String getData96() { return data96; } public void setData96(String data96) { this.data96 = data96; } public String getData97() { return data97; } public void setData97(String data97) { this.data97 = data97; } public String getData98() { return data98; } public void setData98(String data98) { this.data98 = data98; } public String getData99() { return data99; } public void setData99(String data99) { this.data99 = data99; } public String getData100() { return data100; } public void setData100(String data100) { this.data100 = data100; } public String getData101() { return data101; } public void setData101(String data101) { this.data101 = data101; } public String getData102() { return data102; } public void setData102(String data102) { this.data102 = data102; } public String getData103() { return data103; } public void setData103(String data103) { this.data103 = data103; } public String getData104() { return data104; } public void setData104(String data104) { this.data104 = data104; } public String getData105() { return data105; } public void setData105(String data105) { this.data105 = data105; } public String getData106() { return data106; } public void setData106(String data106) { this.data106 = data106; } public String getData107() { return data107; } public void setData107(String data107) { this.data107 = data107; } public String getData108() { return data108; } public void setData108(String data108) { this.data108 = data108; } public String getData109() { return data109; } public void setData109(String data109) { this.data109 = data109; } public String getData110() { return data110; } public void setData110(String data110) { this.data110 = data110; } public String getData111() { return data111; } public void setData111(String data111) { this.data111 = data111; } public String getData112() { return data112; } public void setData112(String data112) { this.data112 = data112; } public String getData113() { return data113; } public void setData113(String data113) { this.data113 = data113; } public String getData114() { return data114; } public void setData114(String data114) { this.data114 = data114; } public String getData115() { return data115; } public void setData115(String data115) { this.data115 = data115; } public String getData116() { return data116; } public void setData116(String data116) { this.data116 = data116; } public String getData117() { return data117; } public void setData117(String data117) { this.data117 = data117; } public String getData118() { return data118; } public void setData118(String data118) { this.data118 = data118; } public String getData119() { return data119; } public void setData119(String data119) { this.data119 = data119; } } On the other hand I have a method call setListToPOJO public class Utility{ public static void setListToPOJO(List<String> objList, HealthDetails healthDetails){ Methods[] methods = healthDetails.getClass().getDeclaredMethods(); int i = 0; for(Method method : methods){ if(method.getName().startsWith("set"){ method.invoke(healthDetails, objList.get(i++)); } } //include all the try catch methods IllegalArgumentException / //IllegalArgumentException / InvocationTargetException } however i caught an argumentTypeMissmatch Any Idea how do i solve this without modifying the access Field? this is the method use to make it work the main class public class RunMethod{ public static void main(String[] args){ List<String> data = Arrays.asList("object0", "object1", "object2", "object3", "object4", "object5", "object6", "object7", "object8", "object9", "object10", "object11", "object12", "object13", "object14", "object15", "object16", "object17", "object18", "object19", "object20", "object21", "object22", "object23", "object24", "object25", "object26", "object27", "object28", "object29", "object30", "object31", "object32", "object33", "object34", "object35", "object36", "object37", "object38", "object39", "object40", "object41", "object42", "object43", "object44", "object45", "object46", "object47", "object48", "object49", "object50", "object51", "object52", "object53", "object54", "object55", "object56", "object57", "object58", "object59", "object60", "object61", "object62", "object63", "object64", "object65", "object66", "object67", "object68", "object69", "object70", "object71", "object72", "object73", "object74", "object75", "object76", "object77", "object78", "object79", "object80", "object81", "object82", "object83", "object84", "object85", "object86", "object87", "object88", "object89", "object90", "object91", "object92", "object93", "object94", "object95", "object96", "object97", "object98", "object99", "object100", "object101", "object102", "object103", "object104", "object105", "object106", "object107", "object108", "object109", "object110", "object111", "object112", "object113", "object114", "object115", "object116", "object117", "object118", "object119"); HealthDeatils healthDetails = new HealthDetails(); Utility.setListToPOJO(data,healthDetails); } } Below is the output Error Message (Edited): java.lang.IllegalArgumentException: argument type mismatch at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:592)
The cause is that the parameter you passed, objList.get(i++) is not the type the method you invoke required. modify you code to for(Method method : methods){ String value = objList.get(i); try { if(method.getName().startsWith("set"){ method.invoke(healthDetails, value); i++; } } catch (Exception e) { e.printStackTrace(); System.out.println("Value is: " + value); // show which value is wrong } } This would check which value type is wrong. On the other hand, for the wrong order of methods. I suggest you change objList from List<String> to Map<String, Obj>, the key is the name of the method you want to invoke, like Id, Name. Then you invoke it by just add set in front of it. for (Map.Entry<String, String> entry : map.entrySet()) { Object value = entry.getValue(); Method method = healthDetails.getClass().getDeclaredMethod("set"+entry.getKey(), value.getClass()); method.invoke(healthDetails, value); }
Your HealthDetails class have 124 properties and 124 setter methods but you are populating data list with only 120 elements causing ArrayIndexOutOfBoundsException while calling the setter methods through reflection. If we provide arguments for all the setter methods in that list your code will work without any issue. Below is the working modified code: public class RunMethod { public static void main(String[] args) { List<String> data = Arrays.asList("id", "name", "age", "height", " object0", "object1", "object2", "object3", "object4", "object5", "object6", "object7", "object8", "object9", "object10", "object11", "object12", "object13", "object14", "object15", "object16", "object17", "object18", "object19", "object20", "object21", "object22", "object23", "object24", "object25", "object26", "object27", "object28", "object29", "object30", "object31", "object32", "object33", "object34", "object35", "object36", "object37", "object38", "object39", "object40", "object41", "object42", "object43", "object44", "object45", "object46", "object47", "object48", "object49", "object50", "object51", "object52", "object53", "object54", "object55", "object56", "object57", "object58", "object59", "object60", "object61", "object62", "object63", "object64", "object65", "object66", "object67", "object68", "object69", "object70", "object71", "object72", "object73", "object74", "object75", "object76", "object77", "object78", "object79", "object80", "object81", "object82", "object83", "object84", "object85", "object86", "object87", "object88", "object89", "object90", "object91", "object92", "object93", "object94", "object95", "object96", "object97", "object98", "object99", "object100", "object101", "object102", "object103", "object104", "object105", "object106", "object107", "object108", "object109", "object110", "object111", "object112", "object113", "object114", "object115", "object116", "object117", "object118", "object119"); HealthDetails healthDetails = new HealthDetails(); Utility.setListToPOJO(data, healthDetails); } } Utility Class public class Utility{ public static void setListToPOJO(List objList, HealthDetails healthDetails) { System.out.println(objList.size()); Method[] methods = healthDetails.getClass().getDeclaredMethods(); System.out.println("methods array size " +methods.length); int i = 0; for (Method method : methods) { if (method.getName().startsWith("set")) { System.out.println(method.getName()); try { method.invoke(healthDetails, objList.get(i++)); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } } } }
A different approach. Currently, your code reads: Methods[] methods = healthDetails.getClass().getDeclaredMethods(); int i = 0; for(Method method : methods){ if(method.getName().startsWith("set"){ method.invoke(healthDetails, objList.get(i++)); } } The implicit assumption here is: the setter methods returned by getDeclaredMethods() are in the same order as your parameters (List<String> objList). First of all, that assumption is wrong. There is no guaranteed order in that array. But beyond that: when you know the order of elements in your list you simply don't need to use reflection at all. You just do: for (int i=0; i < objList.size(); i++) { String parm = objList.get(i); switch (i) { case 0: healthDetails.setId(parm); break; case 1: healthDetails.set...(parm); break; and so on. The point is, as stated multiple times: using a flat list means that you (somehow) must know in which order the arguments come in. And then you can simply use that order to determine the required setter method. In other words: the code example you are showing implies that you do not need to use reflection to solve this problem. At all. Your idea to use reflection only buys you complexity, nothing else. ( of course: when the input would be a Map<String, String> that provided the field names, things would be different. but as long as you use a list with a fixed order, there is no need and point using reflection! ) Given the update, the only real answer there is: don't use 100+ fields named data1, data2, ... that is what arrays/list are for.
Spark: Mapping RDD to RDD returning nullpointer Exception
In my logic, I am attempting to map a JDBCRDD - TopologyRDD over to a JavaBean of JavaRDD. TopologyRDD.count() returns the CORRECT number of rows, so I know the data was loaded in correctly. I also mapped TopologyRDD to a List just to confirm the data was loaded in, and it loaded in the data just fine. Problem: When mapping TopologyRDD to MODEL_TOPOLOGYRDD, the MODEL_TOPOLOGYRDD.count() action is returning a nullpointer exception error. Model: public class modelTopology implements Serializable { private String A_TYPE; private String Z_TYPE; private String A_CLLI; private String Z_CLLI; private String A_HOSTNAME; private String Z_HOSTNAME; private String A_LOCATION; private String A_LOC_TYPE; private String Z_LOCATION; private String Z_LOC_TYPE; private String A_SHELF; private String A_SLOT; private String A_CARD; private String A_PORT; private String A_INTERFACE; private String A_IF_DESC; private String Z_SHELF; private String Z_SLOT; private String Z_CARD; private String Z_PORT; private String Z_INTERFACE; private String Z_IF_DESC; private String A_CARD_NAME; private String Z_CARD_NAME; private String PHY_CIRCUIT_ID; private String LAG_CIRCUIT_ID; private String PHY_CIRCUIT_ALIAS; private String A_VENDOR; private String A_MODEL; private String A_TECHNOLOGY; private String Z_VENDOR; private String Z_MODEL; private String Z_TECHNOLOGY; private String A_EH_ELEMENT_ID; private String A_EH_MACHINE_ID; private String Z_EH_ELEMENT_ID; private String Z_EH_MACHINE_ID; private String A_EH_SPEED; private String Z_EH_SPEED; private String A_EH_SPEED1; private String Z_EH_SPEED1; private String A_EH_EHEALTH_DOMAIN; private String Z_EH_EHEALTH_DOMAIN; private String A_MRTG_HOSTID; private String A_MRTG_GRPID; private String A_MRTG_IFID; private String Z_MRTG_HOSTID; private String Z_MRTG_GRPID; private String Z_MRTG_IFID; private String A_MGMT_IP; private String Z_MGMT_IP; private String A_IF_INDEX; private String Z_IF_INDEX; private String IS_PROD; private String TOPOLOGY_KEY; private String COMMIT_TS; public void setA_TYPE(String A_TYPE) { this.A_TYPE = A_TYPE; } public void setZ_TYPE(String Z_TYPE) { this.Z_TYPE = Z_TYPE; } public void setA_CLLI(String A_CLLI) { this.A_CLLI = A_CLLI; } public void setZ_CLLI(String Z_CLLI) { this.Z_CLLI = Z_CLLI; } public void setA_HOSTNAME(String A_HOSTNAME) { this.A_HOSTNAME = A_HOSTNAME; } public void setZ_HOSTNAME(String Z_HOSTNAME) { this.Z_HOSTNAME = Z_HOSTNAME; } public void setA_LOCATION(String A_LOCATION) { this.A_LOCATION = A_LOCATION; } public void setA_LOC_TYPE(String A_LOC_TYPE) { this.A_LOC_TYPE = A_LOC_TYPE; } public void setZ_LOCATION(String Z_LOCATION) { this.Z_LOCATION = Z_LOCATION; } public void setZ_LOC_TYPE(String Z_LOC_TYPE) { this.Z_LOC_TYPE = Z_LOC_TYPE; } public void setA_SHELF(String A_SHELF) { this.A_SHELF = A_SHELF; } public void setA_SLOT(String A_SLOT) { this.A_SLOT = A_SLOT; } public void setA_CARD(String A_CARD) { this.A_CARD = A_CARD; } public void setA_PORT(String A_PORT) { this.A_PORT = A_PORT; } public void setA_INTERFACE(String A_INTERFACE) { this.A_INTERFACE = A_INTERFACE; } public void setA_IF_DESC(String A_IF_DESC) { this.A_IF_DESC = A_IF_DESC; } public void setZ_SHELF(String Z_SHELF) { this.Z_SHELF = Z_SHELF; } public void setZ_SLOT(String Z_SLOT) { this.Z_SLOT = Z_SLOT; } public void setZ_CARD(String Z_CARD) { this.Z_CARD = Z_CARD; } public void setZ_PORT(String Z_PORT) { this.Z_PORT = Z_PORT; } public void setZ_INTERFACE(String Z_INTERFACE) { this.Z_INTERFACE = Z_INTERFACE; } public void setZ_IF_DESC(String Z_IF_DESC) { this.Z_IF_DESC = Z_IF_DESC; } public void setA_CARD_NAME(String A_CARD_NAME) { this.A_CARD_NAME = A_CARD_NAME; } public void setZ_CARD_NAME(String Z_CARD_NAME) { this.Z_CARD_NAME = Z_CARD_NAME; } public void setPHY_CIRCUIT_ID(String PHY_CIRCUIT_ID) { this.PHY_CIRCUIT_ID = PHY_CIRCUIT_ID; } public void setLAG_CIRCUIT_ID(String LAG_CIRCUIT_ID) { this.LAG_CIRCUIT_ID = LAG_CIRCUIT_ID; } public void setPHY_CIRCUIT_ALIAS(String PHY_CIRCUIT_ALIAS) { this.PHY_CIRCUIT_ALIAS = PHY_CIRCUIT_ALIAS; } public void setA_VENDOR(String A_VENDOR) { this.A_VENDOR = A_VENDOR; } public void setA_MODEL(String A_MODEL) { this.A_MODEL = A_MODEL; } public void setA_TECHNOLOGY(String A_TECHNOLOGY) { this.A_TECHNOLOGY = A_TECHNOLOGY; } public void setZ_VENDOR(String Z_VENDOR) { this.Z_VENDOR = Z_VENDOR; } public void setZ_MODEL(String Z_MODEL) { this.Z_MODEL = Z_MODEL; } public void setZ_TECHNOLOGY(String Z_TECHNOLOGY) { this.Z_TECHNOLOGY = Z_TECHNOLOGY; } public void setA_EH_ELEMENT_ID(String A_EH_ELEMENT_ID) { this.A_EH_ELEMENT_ID = A_EH_ELEMENT_ID; } public void setA_EH_MACHINE_ID(String A_EH_MACHINE_ID) { this.A_EH_MACHINE_ID = A_EH_MACHINE_ID; } public void setZ_EH_ELEMENT_ID(String Z_EH_ELEMENT_ID) { this.Z_EH_ELEMENT_ID = Z_EH_ELEMENT_ID; } public void setZ_EH_MACHINE_ID(String Z_EH_MACHINE_ID) { this.Z_EH_MACHINE_ID = Z_EH_MACHINE_ID; } public void setA_EH_SPEED(String A_EH_SPEED) { this.A_EH_SPEED = A_EH_SPEED; } public void setZ_EH_SPEED(String Z_EH_SPEED) { this.Z_EH_SPEED = Z_EH_SPEED; } public void setA_EH_SPEED1(String A_EH_SPEED1) { this.A_EH_SPEED1 = A_EH_SPEED1; } public void setZ_EH_SPEED1(String Z_EH_SPEED1) { this.Z_EH_SPEED1 = Z_EH_SPEED1; } public void setA_EH_EHEALTH_DOMAIN(String A_EH_EHEALTH_DOMAIN) { this.A_EH_EHEALTH_DOMAIN = A_EH_EHEALTH_DOMAIN; } public void setZ_EH_EHEALTH_DOMAIN(String Z_EH_EHEALTH_DOMAIN) { this.Z_EH_EHEALTH_DOMAIN = Z_EH_EHEALTH_DOMAIN; } public void setA_MRTG_HOSTID(String A_MRTG_HOSTID) { this.A_MRTG_HOSTID = A_MRTG_HOSTID; } public void setA_MRTG_GRPID(String A_MRTG_GRPID) { this.A_MRTG_GRPID = A_MRTG_GRPID; } public void setA_MRTG_IFID(String A_MRTG_IFID) { this.A_MRTG_IFID = A_MRTG_IFID; } public void setZ_MRTG_HOSTID(String Z_MRTG_HOSTID) { this.Z_MRTG_HOSTID = Z_MRTG_HOSTID; } public void setZ_MRTG_GRPID(String Z_MRTG_GRPID) { this.Z_MRTG_GRPID = Z_MRTG_GRPID; } public void setZ_MRTG_IFID(String Z_MRTG_IFID) { this.Z_MRTG_IFID = Z_MRTG_IFID; } public void setA_MGMT_IP(String A_MGMT_IP) { this.A_MGMT_IP = A_MGMT_IP; } public void setZ_MGMT_IP(String Z_MGMT_IP) { this.Z_MGMT_IP = Z_MGMT_IP; } public void setA_IF_INDEX(String A_IF_INDEX) { this.A_IF_INDEX = A_IF_INDEX; } public void setZ_IF_INDEX(String Z_IF_INDEX) { this.Z_IF_INDEX = Z_IF_INDEX; } public void setIS_PROD(String IS_PROD) { this.IS_PROD = IS_PROD; } public void setTOPOLOGY_KEY(String TOPOLOGY_KEY) { this.TOPOLOGY_KEY = TOPOLOGY_KEY; } public void setCOMMIT_TS(String COMMIT_TS) { this.COMMIT_TS = COMMIT_TS; } public String getA_TYPE() { return A_TYPE; } public String getZ_TYPE() { return Z_TYPE; } public String getA_CLLI() { return A_CLLI; } public String getZ_CLLI() { return Z_CLLI; } public String getA_HOSTNAME() { return A_HOSTNAME; } public String getZ_HOSTNAME() { return Z_HOSTNAME; } public String getA_LOCATION() { return A_LOCATION; } public String getA_LOC_TYPE() { return A_LOC_TYPE; } public String getZ_LOCATION() { return Z_LOCATION; } public String getZ_LOC_TYPE() { return Z_LOC_TYPE; } public String getA_SHELF() { return A_SHELF; } public String getA_SLOT() { return A_SLOT; } public String getA_CARD() { return A_CARD; } public String getA_PORT() { return A_PORT; } public String getA_INTERFACE() { return A_INTERFACE; } public String getA_IF_DESC() { return A_IF_DESC; } public String getZ_SHELF() { return Z_SHELF; } public String getZ_SLOT() { return Z_SLOT; } public String getZ_CARD() { return Z_CARD; } public String getZ_PORT() { return Z_PORT; } public String getZ_INTERFACE() { return Z_INTERFACE; } public String getZ_IF_DESC() { return Z_IF_DESC; } public String getA_CARD_NAME() { return A_CARD_NAME; } public String getZ_CARD_NAME() { return Z_CARD_NAME; } public String getPHY_CIRCUIT_ID() { return PHY_CIRCUIT_ID; } public String getLAG_CIRCUIT_ID() { return LAG_CIRCUIT_ID; } public String getPHY_CIRCUIT_ALIAS() { return PHY_CIRCUIT_ALIAS; } public String getA_VENDOR() { return A_VENDOR; } public String getA_MODEL() { return A_MODEL; } public String getA_TECHNOLOGY() { return A_TECHNOLOGY; } public String getZ_VENDOR() { return Z_VENDOR; } public String getZ_MODEL() { return Z_MODEL; } public String getZ_TECHNOLOGY() { return Z_TECHNOLOGY; } public String getA_EH_ELEMENT_ID() { return A_EH_ELEMENT_ID; } public String getA_EH_MACHINE_ID() { return A_EH_MACHINE_ID; } public String getZ_EH_ELEMENT_ID() { return Z_EH_ELEMENT_ID; } public String getZ_EH_MACHINE_ID() { return Z_EH_MACHINE_ID; } public String getA_EH_SPEED() { return A_EH_SPEED; } public String getZ_EH_SPEED() { return Z_EH_SPEED; } public String getA_EH_SPEED1() { return A_EH_SPEED1; } public String getZ_EH_SPEED1() { return Z_EH_SPEED1; } public String getA_EH_EHEALTH_DOMAIN() { return A_EH_EHEALTH_DOMAIN; } public String getZ_EH_EHEALTH_DOMAIN() { return Z_EH_EHEALTH_DOMAIN; } public String getA_MRTG_HOSTID() { return A_MRTG_HOSTID; } public String getA_MRTG_GRPID() { return A_MRTG_GRPID; } public String getA_MRTG_IFID() { return A_MRTG_IFID; } public String getZ_MRTG_HOSTID() { return Z_MRTG_HOSTID; } public String getZ_MRTG_GRPID() { return Z_MRTG_GRPID; } public String getZ_MRTG_IFID() { return Z_MRTG_IFID; } public String getA_MGMT_IP() { return A_MGMT_IP; } public String getZ_MGMT_IP() { return Z_MGMT_IP; } public String getA_IF_INDEX() { return A_IF_INDEX; } public String getZ_IF_INDEX() { return Z_IF_INDEX; } public String getIS_PROD() { return IS_PROD; } public String getTOPOLOGY_KEY() { return TOPOLOGY_KEY; } public String getCOMMIT_TS() { return COMMIT_TS; } } Code: //Push into JDBC RDD Object JdbcRDD<Object[]> TopologyJDBCRDD = new JdbcRDD(sc.sc(),oraclecon,"SELECT * FROM NPIDWUAT.FIOS_TOPOLOGY_STG WHERE ? = ?",1,1,1, new MapResult(),ClassManifestFactory$.MODULE$.fromClass(Object[].class)); //Convert to JavaRDD JavaRDD<Object[]> TopologyRDD = JavaRDD.fromRDD(TopologyJDBCRDD, ClassManifestFactory$.MODULE$.fromClass(Object[].class)); System.out.println("Number of Records: " + TopologyRDD.count()); JavaRDD<modelTopology> MODEL_TOPOLOGYRDD = TopologyRDD.map( new Function<Object[], modelTopology>() { #Override public modelTopology call(final Object[] line) throws Exception { Object[] line2 = line; for(int i=0;i<line2.length;i++){ if(line2[i].toString() == null){ line2[i] = ""; } else{ line2[i] = line2[i].toString(); } } modelTopology toporow = new modelTopology(); toporow.setA_TYPE(line2[0].toString()); toporow.setZ_TYPE(line2[1].toString()); toporow.setA_CLLI(line2[2].toString()); toporow.setZ_CLLI(line2[3].toString()); toporow.setA_HOSTNAME(line2[4].toString()); toporow.setZ_HOSTNAME(line2[5].toString()); toporow.setA_LOCATION(line2[6].toString()); toporow.setA_LOC_TYPE(line2[7].toString()); toporow.setZ_LOCATION(line2[8].toString()); toporow.setZ_LOC_TYPE(line2[9].toString()); toporow.setA_SHELF(line2[10].toString()); toporow.setA_SLOT(line2[11].toString()); toporow.setA_CARD(line2[12].toString()); toporow.setA_PORT(line2[13].toString()); toporow.setA_INTERFACE(line2[14].toString()); toporow.setA_IF_DESC(line2[15].toString()); toporow.setZ_SHELF(line2[16].toString()); toporow.setZ_SLOT(line2[17].toString()); toporow.setZ_CARD(line2[18].toString()); toporow.setZ_PORT(line2[19].toString()); toporow.setZ_INTERFACE(line2[20].toString()); toporow.setZ_IF_DESC(line2[21].toString()); toporow.setA_CARD_NAME(line2[22].toString()); toporow.setZ_CARD_NAME(line2[23].toString()); toporow.setPHY_CIRCUIT_ID(line2[24].toString()); toporow.setLAG_CIRCUIT_ID(line2[25].toString()); toporow.setPHY_CIRCUIT_ALIAS(line2[26].toString()); toporow.setA_VENDOR(line2[27].toString()); toporow.setA_MODEL(line2[28].toString()); toporow.setA_TECHNOLOGY(line2[29].toString()); toporow.setZ_VENDOR(line2[30].toString()); toporow.setZ_MODEL(line2[31].toString()); toporow.setZ_TECHNOLOGY(line2[32].toString()); toporow.setA_EH_ELEMENT_ID(line2[33].toString()); toporow.setA_EH_MACHINE_ID(line2[34].toString()); toporow.setZ_EH_ELEMENT_ID(line2[35].toString()); toporow.setZ_EH_MACHINE_ID(line2[36].toString()); toporow.setA_EH_SPEED(line2[37].toString()); toporow.setZ_EH_SPEED(line2[38].toString()); toporow.setA_EH_SPEED1(line2[39].toString()); toporow.setZ_EH_SPEED1(line2[40].toString()); toporow.setA_EH_EHEALTH_DOMAIN(line2[41].toString()); toporow.setZ_EH_EHEALTH_DOMAIN(line2[42].toString()); toporow.setA_MRTG_HOSTID(line2[43].toString()); toporow.setA_MRTG_GRPID(line2[44].toString()); toporow.setA_MRTG_IFID(line2[45].toString()); toporow.setZ_MRTG_HOSTID(line2[46].toString()); toporow.setZ_MRTG_GRPID(line2[47].toString()); toporow.setZ_MRTG_IFID(line2[48].toString()); toporow.setA_MGMT_IP(line2[49].toString()); toporow.setZ_MGMT_IP(line2[50].toString()); toporow.setA_IF_INDEX(line2[51].toString()); toporow.setZ_IF_INDEX(line2[52].toString()); toporow.setIS_PROD(line2[53].toString()); toporow.setTOPOLOGY_KEY(line2[54].toString()); toporow.setCOMMIT_TS(line2[55].toString()); return toporow; } }); System.out.println("MODEL_TOPOLOGYRDD COUNT: " + MODEL_TOPOLOGYRDD.count()); Stacktrace: Application Failed...org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 1.0 failed 1 times, most recent failure: Lost task 0.0 in stage 1.0 (TID 1, localhost): java.lang.NullPointerException at com.verizon.npi.MainApp$1.call(MainApp.java:103) at com.verizon.npi.MainApp$1.call(MainApp.java:96) at org.apache.spark.api.java.JavaPairRDD$$anonfun$toScalaFunction$1.apply(JavaPairRDD.scala:999) at scala.collection.Iterator$$anon$11.next(Iterator.scala:328) at org.apache.spark.storage.MemoryStore.unrollSafely(MemoryStore.scala:249) at org.apache.spark.CacheManager.putInBlockManager(CacheManager.scala:163) at org.apache.spark.CacheManager.getOrCompute(CacheManager.scala:70) at org.apache.spark.rdd.RDD.iterator(RDD.scala:243) at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:61) at org.apache.spark.scheduler.Task.run(Task.scala:56) at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:200) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745)
The only problem I can see with this code is if any line2[i] are null. And if(line2[i].toString() == null) won't work because toString() never returns null for the Object class. I see that you want any null values to become empty strings, so try this as your for-loop instead for(int i = 0; i < line2.length; i++){ line2[i] = (line2[i] == null) ? "" : String.valueOf(line2[i]); } Note the use of String.valueOf, which altogether avoids the NullPointerException when trying to get the String value of objects.
How to pass array of string in insert query in ibatis?
How to pass array of string in insert query statement in ibatis. On passing string array as parameter it is giving me this exception of ibatis - Can't infer the SQL type to use for an instance of [Ljava.lang.String;. Use setObject() with an explicit Types value to specify the type to use. How to solve this error ? My method is - public void insertCampaignData(String campaignData, ObjectMapper jsonObjMapper) { Campaign campaign = null; SqlSession session = null; IfrmCreateCampaign createCampaign = null; try { campaign = jsonObjMapper.readValue(campaignData,Campaign.class); session = DBConnectionFactory.getNewSession(); createCampaign = session.getMapper(IfrmCreateCampaign.class); createCampaign.insertCampaignData(campaign); } catch (Exception e) { e.printStackTrace(); } finally { session.close(); } } My entity class is - import java.io.File; import java.util.Date; public class Campaign { private long campaignId; private String campaignName; private long keywordId; private String brandName; private String clientName; private String mobileNum; private Date startTime; private Date endTime; private double campaignBudget; private double allocatedFund; private double campaignRate; private boolean basicTgt; private boolean customTgt; private boolean advTgt; private boolean chechme; private boolean couponSend; private String couponFrom; private String couponTo; private String couponFilePath; private File[] couponFile; private String[] couponFileFileName; private String[] couponFileContent; private String callbackUrl; private String status; private int campaignTypeId; private long roAmount; // edit private int roType; public int getRoType() { return roType; } public void setRoType(int roType) { this.roType = roType; } // edit private String strStartTime; private String strEndTime; private String keyword; private String keywordNum; private int goal; private double spentAmount; private int goalAchievePercent; private int dial; private int uniqueDial; private long userId; private double campaignTotalAmount; private double operatorShare; private long responseCount; private String strRoPdfFileName; private File[] roPdf; private String[] roPdfFileName; private String[] roPdfContent; public long getCampaignId() { return campaignId; } public void setCampaignId(long campaignId) { this.campaignId = campaignId; } public String getCampaignName() { return campaignName; } public void setCampaignName(String campaignName) { this.campaignName = campaignName; } public long getKeywordId() { return keywordId; } public void setKeywordId(long keywordId) { this.keywordId = keywordId; } public String getKeywordNum() { return keywordNum; } public void setKeywordNum(String keywordNum) { this.keywordNum = keywordNum; } public String getBrandName() { return brandName; } public void setBrandName(String brandName) { this.brandName = brandName; } public String getClientName() { return clientName; } public void setClientName(String clientName) { this.clientName = clientName; } public String getMobileNum() { return mobileNum; } public void setMobileNum(String mobileNum) { this.mobileNum = mobileNum; } public Date getStartTime() { return startTime; } public void setStartTime(Date startTime) { this.startTime = startTime; } public Date getEndTime() { return endTime; } public void setEndTime(Date endTime) { this.endTime = endTime; } public double getCampaignBudget() { return campaignBudget; } public void setCampaignBudget(double campaignBudget) { this.campaignBudget = campaignBudget; } public double getAllocatedFund() { return allocatedFund; } public void setAllocatedFund(double allocatedFund) { this.allocatedFund = allocatedFund; } public double getCampaignRate() { return campaignRate; } public void setCampaignRate(double campaignRate) { this.campaignRate = campaignRate; } public boolean isBasicTgt() { return basicTgt; } public void setBasicTgt(boolean basicTgt) { this.basicTgt = basicTgt; } public boolean isCustomTgt() { return customTgt; } public void setCustomTgt(boolean customTgt) { this.customTgt = customTgt; } public boolean isAdvTgt() { return advTgt; } public void setAdvTgt(boolean advTgt) { this.advTgt = advTgt; } public boolean isChechme() { return chechme; } public void setChechme(boolean chechme) { this.chechme = chechme; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getStrStartTime() { return strStartTime; } public void setStrStartTime(String strStartTime) { this.strStartTime = strStartTime; } public String getStrEndTime() { return strEndTime; } public void setStrEndTime(String strEndTime) { this.strEndTime = strEndTime; } public String getKeyword() { return keyword; } public void setKeyword(String keyword) { this.keyword = keyword; } public int getGoal() { return goal; } public void setGoal(int goal) { this.goal = goal; } public double getSpentAmount() { return spentAmount; } public void setSpentAmount(double spentAmount) { this.spentAmount = spentAmount; } public int getGoalAchievePercent() { return goalAchievePercent; } public void setGoalAchievePercent(int goalAchievePercent) { this.goalAchievePercent = goalAchievePercent; } public int getDial() { return dial; } public void setDial(int dial) { this.dial = dial; } public int getUniqueDial() { return uniqueDial; } public void setUniqueDial(int uniqueDial) { this.uniqueDial = uniqueDial; } public long getUserId() { return userId; } public void setUserId(long userId) { this.userId = userId; } public boolean isCouponSend() { return couponSend; } public void setCouponSend(boolean couponSend) { this.couponSend = couponSend; } public String getCouponFrom() { return couponFrom; } public void setCouponFrom(String couponFrom) { this.couponFrom = couponFrom; } public String getCouponTo() { return couponTo; } public void setCouponTo(String couponTo) { this.couponTo = couponTo; } public String getCouponFilePath() { return couponFilePath; } public void setCouponFilePath(String couponFilePath) { this.couponFilePath = couponFilePath; } public File[] getCouponFile() { return couponFile; } public void setCouponFile(File[] couponFile) { this.couponFile = couponFile; } public String[] getCouponFileFileName() { return couponFileFileName; } public void setCouponFileFileName(String[] couponFileFileName) { this.couponFileFileName = couponFileFileName; } public String[] getCouponFileContent() { return couponFileContent; } public void setCouponFileContent(String[] couponFileContent) { this.couponFileContent = couponFileContent; } public String getCallbackUrl() { return callbackUrl; } public void setCallbackUrl(String callbackUrl) { this.callbackUrl = callbackUrl; } public int getCampaignTypeId() { return campaignTypeId; } public void setCampaignTypeId(int campaignTypeId) { this.campaignTypeId = campaignTypeId; } public long getRoAmount() { return roAmount; } public void setRoAmount(long roAmount) { this.roAmount = roAmount; } public double getOperatorShare() { return operatorShare; } public void setOperatorShare(double operatorShare) { this.operatorShare = operatorShare; } public long getResponseCount() { return responseCount; } public void setResponseCount(long responseCount) { this.responseCount = responseCount; } public double getCampaignTotalAmount() { return campaignTotalAmount; } public void setCampaignTotalAmount(double campaignTotalAmount) { this.campaignTotalAmount = campaignTotalAmount; } public String getStrRoPdfFileName() { return strRoPdfFileName; } public void setStrRoPdfFileName(String strRoPdfFileName) { this.strRoPdfFileName = strRoPdfFileName; } public File[] getRoPdf() { return roPdf; } public void setRoPdf(File[] roPdf) { this.roPdf = roPdf; } public String[] getRoPdfFileName() { return roPdfFileName; } public void setRoPdfFileName(String[] roPdfFileName) { this.roPdfFileName = roPdfFileName; } public String[] getRoPdfContent() { return roPdfContent; } public void setRoPdfContent(String[] roPdfContent) { this.roPdfContent = roPdfContent; } } My xml mapping file is - <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mogae.starStarWebServices.db.dao.IfrmCreateCampaign"> <insert id="insertCampaignData" statementType="PREPARED" > insert into campaign(campaign_id,campaign_name,keyword_id,brand_name,client_name,mobile_num,start_time,end_time,campaign_type_id,ro_amount,ro_type,ro_pdf_file_name,campaign_budget,allocated_fund,campaign_rate,is_basic_tgt,is_custom_tgt,is_adv_tgt,is_checkme,is_coupon_send,coupon_from,coupon_to,coupon_file,callback_url,status) values (#{campaignId},#{campaignName},#{keywordId},#{brandName},#{clientName},#{mobileNum},#{startTime},#{endTime},#{campaignTypeId},#{roAmount},#{roType}, #{strRoPdfFileName},#{campaignBudget},#{allocatedFund},#{campaignRate},#{basicTgt},#{customTgt},#{advTgt},#{chechme},#{couponSend},#{couponFrom},#{couponTo},#{couponFileFileName},#{callbackUrl},#{status}); </insert> <insert id="insertKeywordData" statementType="PREPARED" > insert into keywords(keyword_id,keyword,keyword_num,booked_by,purchased_on,expires_on,status) values (#{keywordId},#{keyword},#{keywordNum},#{bookedBy},#{purchasedOn},#{expiresOn},#{status}) </insert> </mapper>
constructor in class cannot applied to given types
I have problem with this constructor TblPemohon in class entity.TblPemohon cannot applied to given types. I'm using Netbeans 7.0.1 The code for entity.TblProblem: public class TblPemohon { private String KtpPemohon; private String NamaDepanPemohon; private String NamaBelakangPemohon; private String TempatLahirPemohon; private String TanggalLahirPemohon; private String JenisKelamin; private String AgamaPemohon; private String StatusPerkawinan; private String PekerjaanPemohon; private String NamaJalanPemohon; private String NoAlamatPemohon; private String RtPemohon; private String RwPemohon; private String KelurahanPemohon; private String KecamatanPemohon; private String KabupatenPemohon; private String ProvinsiPemohon; private String KodePosPemohon; private String TelpPemohon; private String KewarganegaraanPemohon; private String errorCode; public TblPemohon() { } public String getKtpPemohon() { return KtpPemohon; } public void setKtpPemohon(String KtpPemohon) { this.KtpPemohon = KtpPemohon; } public String getNamaDepanPemohon() { return NamaDepanPemohon; } public void setNamaDepanPemohon(String NamaDepanPemohon) { this.NamaDepanPemohon = NamaDepanPemohon; } public String getNamaBelakangPemohon() { return NamaBelakangPemohon; } public void setNamaBelakangPemohon(String NamaBelakangPemohon) { this.NamaBelakangPemohon = NamaBelakangPemohon; } public String getTempatLahirPemohon() { return TempatLahirPemohon; } public void setTempatLahirPemohon(String TempatLahirPemohon) { this.TempatLahirPemohon = TempatLahirPemohon; } public String getTanggalLahirPemohon() { return TanggalLahirPemohon; } public void setTanggalLahirPemohon(String TanggalLahirPemohon) { this.TanggalLahirPemohon = TanggalLahirPemohon; } public String getJenisKelamin() { return JenisKelamin; } public void setJenisKelamin(String JenisKelamin) { this.JenisKelamin = JenisKelamin; } public String getAgamaPemohon() { return AgamaPemohon; } public void setAgamaPemohon(String AgamaPemohon) { this.AgamaPemohon = AgamaPemohon; } public String getStatusPerkawinan() { return StatusPerkawinan; } public void setStatusPerkawinan(String StatusPerkawinan) { this.StatusPerkawinan = StatusPerkawinan; } public String getPekerjaanPemohon() { return PekerjaanPemohon; } public void setPekerjaanPemohon(String PekerjaanPemohon) { this.PekerjaanPemohon = PekerjaanPemohon; } public String getNamaJalanPemohon() { return NamaJalanPemohon; } public void setNamaJalanPemohon(String NamaJalanPemohon) { this.NamaJalanPemohon = NamaJalanPemohon; } public String getNoAlamatPemohon() { return NoAlamatPemohon; } public void setNoAlamatPemohon(String NoAlamatPemohon) { this.NoAlamatPemohon = NoAlamatPemohon; } public String getRtPemohon() { return RtPemohon; } public void setRtPemohon(String RtPemohon) { this.RtPemohon = RtPemohon; } public String getRwPemohon() { return RwPemohon; } public void setRwPemohon(String RwPemohon) { this.RwPemohon = RwPemohon; } public String getKelurahanPemohon() { return KelurahanPemohon; } public void setKelurahanPemohon(String KelurahanPemohon) { this.KelurahanPemohon = KelurahanPemohon; } public String getKecamatanPemohon() { return KecamatanPemohon; } public void setKecamatanPemohon(String KecamatanPemohon) { this.KecamatanPemohon = KecamatanPemohon; } public String getKabupatenPemohon() { return KabupatenPemohon; } public void setKabupatenPemohon(String KabupatenPemohon) { this.KabupatenPemohon = KabupatenPemohon; } public String getProvinsiPemohon() { return ProvinsiPemohon; } public void setProvinsiPemohon(String ProvinsiPemohon) { this.ProvinsiPemohon = ProvinsiPemohon; } public String getKodePosPemohon() { return KodePosPemohon; } public void setKodePosPemohon(String KodePosPemohon) { this.KodePosPemohon = KodePosPemohon; } public String getTelpPemohon() { return TelpPemohon; } public void setTelpPemohon(String TelpPemohon) { this.TelpPemohon = TelpPemohon; } public String getKewarganegaraanPemohon() { return KewarganegaraanPemohon; } public void setKewarganegaraanPemohon(String KewarganegaraanPemohon) { this.KewarganegaraanPemohon = KewarganegaraanPemohon; } public String getErrorCode() { return errorCode; } public void setErrorCode(String errorCode) { this.errorCode = errorCode; } } and the code for another class which call it public List<TblPemohon> getTblPemohons() { DataBase db = new DataBase(); try { Pemohon p = new Pemohon(db.getConnection()); return p.getTblPemohons(); } catch (Exception e) { List<TblPemohon> ltp = new ArrayList<TblPemohon>(); ltp.add(new TblPemohon(e.getMessage())); return ltp; } finally { db.close(); } }
Your TblPemohon class only have non-argument constructor, but you tried to create it with a constructor that takes one string here: ltp.add(new TblPemohon(e.getMessage())); You need to either add a constructor that take one string, or use the non-argument constructor