需要一些幫助瞭解我是否在正確的軌道上,以及我需要做什麼。希望有人可以參加。需要關於將對象映射到數據庫,註釋和一對多關係的說明
所以我有三張表,Job,Authorization和Filter。每個作業必須有一個授權和一個過濾器。當然,每個過濾器可以被多個作業使用,授權也是如此。但是,過濾器和授權不需要知道他們正在使用的作業。
因此,這是一個過濾器和授權的一對多關係,我認爲是正確的?或者我偏離軌道?這是如何在數據庫中建模的?我相信Job表需要在過濾和授權表中有一個外鍵字段。過濾和授權表需要將外鍵字段本身用於Job嗎?
接下來,我如何在Java對象中對此進行建模,然後如何設置hibernate或java持久性註釋?我相信Filter類看起來像:
class Filter {
@OnetoMany
@JoinColumn(name="filterID")
private Job job;
}
和Authorization類基本相同,那麼Job類將如何顯示?真正引起我興趣的是Filter和Authorization類不需要任何關於它們關聯的Job的知識,所以我沒有看到它們需要實際持有對Job對象的引用。只有Job類需要保存對Filter和Authorization對象的引用。那麼我真的需要上面的代碼嗎?
我希望有人可以幫助澄清這一切,因爲我似乎無法包圍我的頭。數據庫並不是我的強項。謝謝。
這就是我的想法。正如我所說的,Job需要知道過濾器和授權,但不是其他方式,所以我希望我不需要在Filter或Authorization類中放置任何代碼。所以ManyToOne是我想要的嗎?謝謝。我很困惑,雖然我見過一些其他的東西。上述代碼中的authorization_id列是否引用授權表或作業表中的列?外鍵在哪裏?就在工作表中? – cardician
authorization_id是hibernate將在Job表中爲您創建的連接列的名稱。您可能不會指定它,它會爲您創建。此authorization_id字段將具有與Authorization對象中的相應主鍵完全相同的值。我會繼續我的帖子。 –
非常好,謝謝!最後一點,我不確定,我需要把外鍵放在數據庫中?我假設我需要在我的數據庫中創建一個實際的外鍵關係,那只是在Job表上? – cardician