Java SpringJPA如何创建表以便共享公共ID?
我想在春天创建一个消息系统。我将有3个模型和2个表格。我想做的是:Java SpringJPA如何创建表以便共享公共ID?,java,spring,hibernate,spring-data-jpa,Java,Spring,Hibernate,Spring Data Jpa,我想在春天创建一个消息系统。我将有3个模型和2个表格。我想做的是: 1) 创建一个表“对话”=完成 2) 在“conversations”表中创建新条目,会话id和会话主题为“done”。 4) 创建新表“对话\成员” 5) 在表“对话成员”中创建两个新条目,一个具有对话id,发送者id,上次查看日期,isdeleted=0(false)和对话id,接收者id,上次查看日期,isdeleted=0(false) 6) 下一个表单中,我希望在“对话信息”中生成条目,其中包含信息id(自动生成的长i
1) 创建一个表“对话”=完成
2) 在“conversations”表中创建新条目,会话id和会话主题为“done”。
4) 创建新表“对话\成员”
5) 在表“对话成员”中创建两个新条目,一个具有
对话id
,发送者id
,上次查看日期
,isdeleted=0(false)
和对话id
,接收者id
,上次查看日期
,isdeleted=0(false)
6) 下一个表单中,我希望在“对话信息”中生成条目,其中包含信息id(自动生成的长id)、对话id、信息日期和消息文本。
我不知道如何连接3个表中的所有
对话\u id
。我认为这将是“一对多”的选择,但如何使用它呢?
向你问好,杰德尔泽
对话模式:
@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() {
}
}
@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;
}
}
@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;
}
}
ConversationMembers型号:
@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() {
}
}
@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;
}
}
@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;
}
}
对话消息模型:
@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() {
}
}
@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;
}
}
@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>
致:
主题
根据你的问题,我知道你想建立关系。所以你可以使用类似的东西
对话
@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中的许多选项是的,您需要使用关系。只需使用注释即可。在“对话”中,我只希望有两个字段=对话id,对话主题。好的,删除上面的列表,在其他字段中添加manyTone和joincolumn