我正嘗試使用Hibernate在用戶表和消息表之間創建一對多的關係。一個用戶可以在消息數據庫中擁有多條消息。但是,我無法獲得它的模式。 這裏是我的代碼一個用戶可以在mysql數據庫中有多條消息
User.java
@Entity
@Table
public class User {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@ManyToOne
User user;
@Column(unique = true)
private String username;
private String password;
@OneToMany
Message message;
public User(String userName, String password) {
this.username = userName;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
Message.java
@Entity
public class Message {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String sender;
private String receiver;
private String content;
@Type(type="timestamp")
private Date created;
public Message() {
}
public Message(String sender, String receiver, String content) {
this.sender = sender;
this.receiver = receiver;
this.content = content;
this.created = new Date();
}
public Date getCreated() {
return created;
}
public void setCreated(Date created) {
this.created = created;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getSender() {
return sender;
}
public void setSender(String sender) {
this.sender = sender;
}
public String getReceiver() {
return receiver;
}
public void setReceiver(String receiver) {
this.receiver = receiver;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
這是我的架構
CREATE TABLE `Message` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`content` varchar(255) DEFAULT NULL,
`created` datetime DEFAULT NULL,
`receiver` varchar(255) DEFAULT NULL,
`sender` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `User` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`password` varchar(255) DEFAULT NULL,
`username` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `UK_jreodf78a7pl5qidfh43axdfb` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
但不幸的是,我無法獲得一個到用戶和消息的許多關係。任何人都可以幫助我做到這一點。如何設計一個模式來獲得一對多的關係,以及如何改變POJO類來實現它?
究竟如何是你無法獲得關係?你有任何控制檯錯誤或任何可以給我們提供線索的東西嗎? –