我正在研究Spring MVC WEB應用程序,我很難在適當的註釋中在我的Entity類中應用Hibernate的「良好」映射設計。我想就什麼是用Java表示我的數據庫表的最佳設計提供一些建議。映射Hibernate批註的優化方式一對多關係
爲了解我的情況: 這個ORM映射的目標將用於堅持在SentMessage表解組現有的XML文件。在FeedBackMessage表中,我將堅持已經存在的解析爲Java對象的CSV文件(反饋)。
基於這個「批處理過程」,我必須進行比較,以根據數據庫級別收到的反饋信息瞭解哪個documentid收到了可能數量的狀態(狀態)。
我試圖與下面的設計,但是當我試圖在數據庫中插入數據,我得到 「獨立實體錯誤」:
SentMessage實體
@Entity
@Table(name = "SENTMESSAGES")
public class SentMessaages{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "documentid")
private String documentid;
@Column(name = "documenttitle")
private String documenttitle;
@Column(name = "language")
private String language;
@Column(name = "email")
private String email;
/***************************************/
Setters en Getters method
//****//
}
Feedbackmessage實體
@Entity
@Table(name = "FEEDBACKMESSAGES")
public class FeedbackMessage {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer Id;
@Column(name = "documentid")
private String documentid;
@Column(name = "status")
private String status;
@Column(name = "returndate")
private Date returndate;
@Column(name = "action")
private String action;
@Column(name = "actiondate")
private String actiondate;
Other fields...
/***************************************/
Setters en Getters method
//****//
}
TABL創建聲明E在MYSQL
CREATE TABLE `sentmessages` (
`documentid` varchar(45) DEFAULT '',
`language` varchar(30) DEFAULT NULL,
`sending_date` date DEFAULT NULL,
`customtext07` varchar(45) DEFAULT NULL,
`customtext12` varchar(45) DEFAULT NULL,
`customerid` varchar(45) DEFAULT NULL,
`email` varchar(100) DEFAULT NULL,
`documenttitle` varchar(45) DEFAULT NULL,
`count` int(11) DEFAULT NULL,
PRIMARY KEY (`documentid`)
) ENGINE=InnoDB;
CREATE TABLE `feedbackmessages` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`documentid` varchar(45) DEFAULT NULL,
`status` varchar(45) DEFAULT NULL,
`endcustomerid` varchar(45) DEFAULT NULL,
`reason` varchar(45) DEFAULT NULL,
`actiondate` date DEFAULT NULL,
`email` varchar(45) DEFAULT NULL,
`batchid` varchar(150) DEFAULT NULL,
`filename` varchar(45) DEFAULT NULL,
`channel` varchar(45) DEFAULT NULL,
`islegal` varchar(45) DEFAULT NULL,
`action` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`),
INDEX `FK_ID` (`document_id`),
CONSTRAINT `FK_DOCID` FOREIGN KEY (`document_id`) REFERENCES `sentmessages` (`documentid`)
) ENGINE=InnoDB;
感謝親愛的你的時候,我讀過你送我的一條鏈接。我現在知道如何設計這個 – algorithmic