[英]Return ObjectId from soap web service
我有2個java應用程序。 肥皂服務器(jax-ws)和肥皂客戶端。 Soap服務器使用spring mongo和mongoDb作為數據庫。 因此,在我的服務器上,我有方法可以重新命令所有公司
@WebMethod(operationName = "getCompanies")
public CompanyList getCompanies(){
CompanyList companyList = new CompanyList();
companyList.companyDocArrayList = Lists.newArrayList(orgStructService.getCompanyDocService().findAll());
return companyList;
}
companyList類
public class CompanyList {
public ArrayList<CompanyDoc> companyDocArrayList;
}
和CompanyDoc
public class CompanyDoc{
@Id
private ObjectId id;
private String companyName;
//getter setter
}
所以,當我稱這種方法
ClientService clientService = new ClientService Service().getClientServicePort();
modelMap.addAttribute("companyList", clientService.getCompanies().getCompanyDocArrayList());
在List的clientService.getCompanies()中我得到奇怪的objectId,如com.web.client.services.ws.ObjectId@45ee7ab1(45ee7ab1 - 此值更改每個刷新頁面)但在數據庫中它是5369fefa1d6e6712866daaea
我做錯了什么?
似乎JAX-WS
不知道如何將ObjectId
對象轉換為String
。 我不知道你是如何使用你的文檔的,但我認為你可以在CompanyDoc
對象中使用String
而不是ObjectId
。 在插入數據時, Spring data
會將String
轉換為ObjectId
,反之亦然。
public class CompanyDoc{
@Id
private String id;
private String companyName;
//getter setter
}
來自文檔的更多信息
下面概述了在使用MappingMongoConverter(MongoTemplate的默認值)時,將在映射到_id文檔字段的屬性上進行的類型轉換(如果有)。
- 如果可能,使用Spring將在Java類中聲明為String的id屬性或字段轉換為ObjectId並將其存儲為ObjectId
轉換器。 委派有效的轉換規則
Mongo Java驅動程序。 如果無法將其轉換為ObjectId,則該值將作為字符串存儲在數據庫中。- 在Java類中聲明為BigInteger的id屬性或字段將使用Spring轉換為ObjectId並存儲
轉換器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.