在我的應用中使用playframework
寫入方法時,我需要獲取Address
字段的用戶輸入並搜索db以找到匹配的字段。如果找不到匹配的地址,我必須創建一個新的地址。測試可選字段值的正確方法
這裏只有addressLine1
和country
是必填字段。 用戶可以忽略addressLine2。
同時採取從HTML表單輸入,可選字段的文本框返回一個空string.So,測試地址的創作,我決定創建一個Map<String,String>
傳遞給POST
方法.. 我試過
addrparams = new Map<String,String>();
addrparams.put("addressline1","clayton st");
addrparams.put("country","US");
當jpql查詢試圖爲缺少的選項字段綁定地圖值時,會導致出現空指針異常。
String query="select distinct a from Address a where a.addressLine1=:addressline1 and a.addressLine2=:addressline2 and a.country=:country";
Address address = Address.find(query).bind("addressline1",addressline1).bind("addressline2",addressline2).bind("country", country).first();
..
我通過把空字符串的所有可選字段
addrparams = new Map<String,String>();
addrparams.put("addressline1","clayton st");
addrparams.put("addressline2","");
addrparams.put("country","US");
我希望這是做this..If有人能在測試這種情況下指出,更好的方法正確的方法,它解決了這個將幫助我很多
Address類
@Entity
public class Address extends Model {
@Required
String addressLine1;
String addressLine2;
@Required
String country;
...
}
更新時間: 堆棧跟蹤是here
其中nullptr發生異常Account.java:207,是此行
Address address = Address.find(query).bind("addressline1",addressline1).bind("addressline2",addressline2).bind("country", country).first();
我已經添加了堆棧跟蹤到問題 – jimgardener
有問題的一些錯別字..我糾正了他們 – jimgardener