我正在學習休眠,并且對物體和表之間的差異以及它們如何協同/獨立作業有一些疑問?
情況1:
@Entity
public class Person{
}
My understanding -
Entity name - Person
Table name in db - person
案例二:
@Entity(name = "people")
public class Person{
}
My understanding -
Entity name - people
Table name in db - people
案例3:
@Entity
@Table(name="people")
public class Person{
}
My understanding -
Entity name - Person
Table name in db - people
案例4:
@Entity(name = "person")
@Table(name = "people")
public class Person{
}
My understanding -
Entity name - person
Table name in db - people
案例5:
@Table(name="people")
public class Person{
}
My understanding -
Entity name - ??
Table name in db - people
我對這五種情況的理解正確嗎?關于物體和表的作業,我還有什么需要了解的嗎?
uj5u.com熱心網友回復:
@Entity用于宣告一個可以由 Hibernate 管理的類。它還通過其name屬性定義物體名稱,這是我們在撰寫 JPQL/HQL 查詢時參考的名稱。如果未指定物體名稱,則默認為該物體類的非限定名稱。
例如 :
@Entity(name="People")
public class Person{
}
然后我需要People在撰寫 JPQL/HQL 查詢時使用來參考這個物體:
select p from People p;
@Table@Entity定義通過其名稱屬性映射到的實際資料庫表名稱。如果未指定,則其默認值將等于物體名稱(即@Entity的name屬性)
也@Table只有在@Entity定義時才有意義。否則,僅定義@Tablewithout @Entity(即案例 5)沒有任何效果。
所以要總結:
情況1:
@Entity
public class Person {
}
Entity name = Person
DB Table name = Person
案例二:
@Entity(name = "people")
public class Person {
}
Entity name = people
DB Table name = people
案例3:
@Entity
@Table(name="people")
public class Person{
}
Entity name = Person
DB Table name = people
案例4:
@Entity(name = "person")
@Table(name = "people")
public class Person{
}
Entity name = person
DB Table name = people
案例5:無效
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/414186.html
標籤:
