#java #spring-mvc #spring-3
#java #spring-mvc #spring-3
Вопрос:
Мне нужно выбрать несколько значений в форме множественного выбора: выберите тег. мой jsp-код выглядит следующим образом
<form:form id="myForm"
action="service.do" modelAttribute="services"
method="POST">
....
....
<form:select path="channelsInvolved" items="${allChannels}" itemValue="channelid" itemLabel="channelname">
мой контроллер…
List<Channels> channels = dao.getAllChannels();
model.addAttribute("allChannels", channels);
ServiceRegistration serRegistration = dao.getById(2);
model.put("services", serRegistration);
На самом деле, у меня есть 3 таблицы -> ServiceRegistration, Channels (содержит метаданные) и ServiceChannel. ServiceChannel содержит ссылку на внешний ключ как с таблицами serviceregistration, так и с таблицами каналов. Таким образом, один serviceid может иметь несколько идентификаторов каналов, отображенных в таблице servicechannel.
моя регистрация сервиса.класс сущности java имеет поле channelsInvolved как …
@OneToMany(cascade=CascadeType.ALL,fetch = FetchType.EAGER)
@JoinTable(name = "ServiceChannel", joinColumns = {
@JoinColumn(name="serviceid", unique = true)
},
inverseJoinColumns = {
@JoinColumn(name="channelid")
}
)
private List<Channels> channelsInvolved;
public List<Channels> getChannelsInvolved() {
return channelsInvolved;
}
public void setChannelsInvolved(List<Channels> channelsInvolved) {
this.channelsInvolved = channelsInvolved;
}
Класс сущности канала… Channels.java
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column private int channelid;
@Column private String channelname;
ServiceChannel.java класс сущности…
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column private int servicechannelid;
@ManyToOne
@JoinColumn(name = "serviceid")
private ServiceRegistration serviceRegistration;
@ManyToOne
@JoinColumn(name = "channelid")
private Channels channels;
Скажем, у меня есть идентификатор службы>> 2, сопоставленный с идентификатором канала>> 1 и 2. Я могу видеть 2 записи в «channelsInvolved». Но когда я устанавливаю serRegistration как атрибут модели для jsp, в теге select не выбирается ни один.
помощь оценена, спасибо.
Ответ №1:
Вам понадобится правильная equals
реализация в ваших сущностях (особенно в Channels
).
Комментарии:
1. как удалить записи servicechannel при удалении любой службы? На данный момент, когда я удаляю служебную запись, она удаляет запись таблицы каналов, но этого не должно быть, поскольку это МЕТА-таблица. Пожалуйста, помогите. Спасибо!
2. @Surez: создайте новый вопрос, чтобы задать вопрос об удалении материала!
3. @Ralph спасибо, вы сэкономили мое время, поиск в течение нескольких часов,