Java SpringJPA如何创建表以便共享公共ID?

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

我想在春天创建一个消息系统。我将有3个模型和2个表格。我想做的是:
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