2015-10-28 7 views
7

Я следующий контроллер вернуться вид:Spring MVC мисс идентификатор зависимой коллекции, когда скомбинировать объект формы из JSP

@RequestMapping(value = "/admin/adminUsers", method = RequestMethod.GET) 
    public String adminUsers(ModelMap model, HttpSession session) { 
     Set<TerminalAdmin> users = terminalAdminService.getAllAdmins(); 
     session.setAttribute("users", users); 
     model.addAttribute("adminRoles", terminalAdminService.findAllAdminRoles()); 
     model.addAttribute("terminalAdmin", new TerminalAdmin()); 
     model.addAttribute("generatedPassword", PasswordUpdateStatus.generatePassword()); 
     return "admin/adminUsers"; 
    } 

terminalAdminService.findAllAdminRoles() 

коллекция возвращается с идентификаторами:

enter image description here

На JSP я сделать это например:

У меня есть контроллер follwing для принятия этот объект:

@RequestMapping(value = "/admin/addNewAdmin") 
    public String adminUsers(@ModelAttribute @Valid TerminalAdmin terminalAdmin...){ 
     .... 
} 

В отлаживать я вижу, что terminalAdmin поставляется с adminRoles без ид.

enter image description here

Как это исправить?

P.S.

Он по-прежнему в Dependent collection duplicates when I save entity

+0

вы видите идентификаторы в HTML страницы jsp? (в раскрывающемся списке)? –

+0

Какой API вы используете для настойчивости? JPA? –

+0

@fabien t JPA, не связанный с этим вопросом – gstackoverflow

ответ

1

я предпочитаю использовать Converters, потому что для меня это уборщик

вы должны иметь что-то вроде следующего:

public class StringToAdminRoleConverter implements Converter<String, AdminRole> { 

    @Autowired 
    TerminalAdminService terminalAdminService; 

    @Override 
    public AdminRole convert(String role) { 
     return terminalAdminService.findRoleByName(role); 
    } 
}