我想在Spring中创建消息系统。我将有3个模型和2个表格。我想做的是:
1)创建表“对话”=完成
2)在表格“对话”中创建新条目,其中包含转化ID和会话主题=已完成
4)创建新表“conversations_members”
5)在表“conversations_members”中创建两个新的托管,一个包含conversation_id
,sender_id
,lastviewed date
,isdeleted = 0 (false)
和conversation_id
,receiver_id
, lastviewed_date
,isdeleted=0(false)
6)我的下一个表单,带有回复我希望使用message_id(自动生成,长ID),conversation_id,message_date和messate_text在“conversations_messages”中生成条目。
我不知道如何连接3个表中的所有conversation_id
。我认为这将是“一对多”选项,但如何使用它?
最好的问候,Jędrzej。
会话模型:
@Entity
@Table(name = "conversation")
public class Conversation {
@Id
@Column(name = "conversation_id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "conversation_subject")
private String subject;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public Conversation(String subject) {
this.subject = subject;
}
public Conversation() {
}
}
ConversationMembers模型:
@Entity
@Table(name="conversation_members")
public class ConversationMembers {
@Column(name="conversation_id")
private Conversation conversation;
@Column(name="user_id")
private SiteUser user;
@Column(name="conversation_deleted", columnDefinition="Integer(0,1) default '0'")
private int conversationDeleted;
@Column(name="column_last_viewed")
private Date date;
public Conversation getConversation() {
return conversation;
}
public void setConversation(Conversation conversation) {
this.conversation = conversation;
}
public SiteUser getUser() {
return user;
}
public void setUser(SiteUser user) {
this.user = user;
}
public int getConversationDeleted() {
return conversationDeleted;
}
public void setConversationDeleted(int conversationDeleted) {
this.conversationDeleted = conversationDeleted;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public ConversationMembers(Conversation conversation, SiteUser user, int conversationDeleted, Date date) {
this.conversation = conversation;
this.user = user;
this.conversationDeleted = conversationDeleted;
this.date = date;
}
}
ConversationMessage模型:
@Entity
@Table(name="conversations_messages")
public class ConversationMessages {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="message_id")
private Long messsageId;
@Column(name="conversation_id")
private Conversation conversation;
@Column(name="message_date")
private Date message_date;
@Column(name="message_text")
private String text;
public Long getMesssageId() {
return messsageId;
}
public void setMesssageId(Long messsageId) {
this.messsageId = messsageId;
}
public Conversation getConversation() {
return conversation;
}
public void setConversation(Conversation conversation) {
this.conversation = conversation;
}
public Date getMessage_date() {
return message_date;
}
public void setMessage_date(Date message_date) {
this.message_date = message_date;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public ConversationMessages(Long messsageId, Conversation conversation, Date message_date, String text) {
this.messsageId = messsageId;
this.conversation = conversation;
this.message_date = message_date;
this.text = text;
}
}
NewConversation.jsp
<form:form commandName="conversation">
<br>
<form:form commandName="conversationmembers">
To:
<form:input path="userid" type="text" name="userid" />
SUBJECT
<form:input path="subject" type="text" name="subject" />
<button type="submit" value="start conversation" />
</form:form>
</form:form>
答案 0 :(得分:0)
根据你的问题,我知道你想建立关系。所以你可以使用类似的东西
会话
<form id="contact">
<input id="name" name="name" type="text" class="feedback-input" placeholder="Name" /> <span id="spanName"> </span>
<input name="email" type="text" class="feedback-input" placeholder="Email" />
<textarea name="text" class="feedback-input" placeholder="Message..."></textarea>
<input type="submit" value="SUBMIT" />
</form>
// getter setter等等
@Entity @Table(name = "conversation") public class Conversation {
@Id
@Column(name = "conversation_id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "conversation_subject")
private String subject;
@OnetoMany(fetch=FetchType.LAZY,cascade=CascadeType.MERGE)
private List<ConverstaionMessage> message;
@OnetoMany(fetch=FetchType.LAZY,cascade=CascadeType.MERGE)
private List<ConverstaionModel> message;
也可以使用 ConversationMessage和ConversationModel中的@ManyToOne