Я получаю это исключение:
javax.el.PropertyNotFoundException: свойство 'message' не найдено в
введите com.itworx.twitter.model.User
когда я пытаюсь запустить этот код с моего контроллера:
@RequestMapping(value="/profile", method=RequestMethod.GET)
public ModelAndView goProfile(@ModelAttribute("user") User user){
if(user != null){
ModelAndView modelAndView = new ModelAndView("profile-layout");
List< Message> messages=service.getUserMessages(user.getUsername());
/*user.setMessages(messages);*/
/*modelAndView.addObject("user",user);*/
modelAndView.addObject("userMessages",messages);
return modelAndView;
}else{
return new ModelAndView("register-layout");
}
}
пользовательский компонент выглядит так:
@Entity
@Table(name="user")
public class User implements Serializable {
/**
*
*/
private static final long serialVersionUID = -5689970869179555442L;
@Id
@Column(name="username")
/*@NotNull*/
private String username;
@Column(name="password")
private String password;
@Column(name="email")
/*@Email*/
private String email;
@ManyToMany
@JoinTable(name="user_follower",joinColumns={@JoinColumn(name="username")},
inverseJoinColumns={@JoinColumn(name="follower")})
private List<User> followers = new ArrayList<User>(0);
/*@LazyCollection(LazyCollectionOption.FALSE)*/
@OneToMany
@JoinTable(name="user_message",joinColumns={@JoinColumn(name="username")},
inverseJoinColumns={@JoinColumn(name="message_date")})
@OrderBy(value="messageDate")
private List<Message> messages = new ArrayList<Message>(0);
public User() {
}
public String getUsername() {
return this.username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
public void setUserFollowers(List<User> followers) {
this.followers = followers;
}
public List<User> getUserFollowers() {
return followers;
}
public void setMessages(List<Message> messages) {
this.messages = messages;
}
public void addMessage(Message message){
this.messages.add(message);
}
public List<Message> getMessages() {
return messages;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
и реализация dao выглядит следующим образом:
public List<Message> getUserMessage(String username) {
session=sessionFactory.getCurrentSession();
@SuppressWarnings("unchecked")
List<Message> messages=session.createCriteria(User.class).setFetchMode("messages", FetchMode.JOIN)
.add(Restrictions.eq("username", username)).list();
return messages;
}
страница выглядит так:
<body>
<table id="feeds" style='width: 100%'>
<tr></tr>
</table>
<table style='width: 100%'>
<tr></tr>
<c:forEach var="msg" items="${userMessages}">
<tr>
<td>
<c:out value="${msg.message}" />
</td>
</tr>
<tr>
<td>
<c:out value='${msg.messageDate}' />
</td>
</tr>
</c:forEach>
</table>
</body>