使用這些註釋的重點是獨立於數據庫提供者,而不是重新生成JAR歸檔。JPA中@Table註釋的用法是什麼?
如果我堅持@Table (name = myDatabase.myTableName)
我沒有看到首先使用hibernate的重點。如果我決定切換到不同的數據庫提供者,那麼我將不得不修改我的類中的@Table (name = myDatabase.myTableName)
註釋,並重新編譯該應用程序。
使用這些註釋的重點是獨立於數據庫提供者,而不是重新生成JAR歸檔。JPA中@Table註釋的用法是什麼?
如果我堅持@Table (name = myDatabase.myTableName)
我沒有看到首先使用hibernate的重點。如果我決定切換到不同的數據庫提供者,那麼我將不得不修改我的類中的@Table (name = myDatabase.myTableName)
註釋,並重新編譯該應用程序。
@Table註解: @Table註解允許您指定將用於在數據庫中持久化該實體的表的詳細信息。
@Table註釋提供了四個屬性,允許您覆蓋表名,其目錄及其模式,並對錶中的列強制執行唯一約束。現在我們只使用EMPLOYEE的表名。
@Entity
@Table(name = "EMPLOYEE")
public class Employee {
@Id @GeneratedValue
@Column(name = "id")
private int id;
}
只需在此處添加表名,並且不需要在java代碼中提供數據庫名稱。 http://docs.oracle.com/javaee/5/api/javax/persistence/Table.html
你所說的只是反映了爲什麼很多人(包括我自己)不建議將特定於數據庫的信息放入Java代碼中,而是將其保存爲XML,所以一切都更加便攜。有些人喜歡在他們的Java文件中包含所有東西,並使代碼看起來更難以閱讀:-S即個人偏好,所以如果您要使用XML,或者依賴於JPA定義的默認值,請使用它。 –
你尼爾。我認爲'@ Table'註釋有其用處。我將忽略那些教授如何在java類中使用註釋的在線教程。它們誤導 – Emily
爲什麼要在名稱中放置「myDatabase」而不是表名?什麼會阻止你在Oracle,PostgreSQL和MySQL中使用相同的表名?假設你永遠不會改變,這是不會發生的。 –