我有一個名爲LocationType
實體(BaseEntity
是@MappedSuperclass
):Hibernate不會讓我使用的實體類名錶名
@Entity
public class LocationType extends BaseEntity
這個實體產生的表名是location_type
。我明白默認的命名策略是這樣的。
我不明白的是爲什麼我不能強制Hibernate使用文字名稱,locationtype
。無論我做什麼:
@Entity(name = "LocationType")
public class LocationType
或
@Entity
@Table(name = "LocationType")
public class LocationType
或
@Entity(name = "LocationType")
@Table(name = "LocationType")
public class LocationType
表名總是作爲location_type
結束。 Hibernate只是知道更好!
如果我使用任何其他名稱
@Entity(name = "wtf")
然後表的名稱變成wtf
爲好。
這是記錄的行爲?對我來說看起來像一個bug。
相似問題:Hibernate ignores @Table(name = "...") for extended classes - created tablenames are all lower case(它指的是繼承映射,雖然)。
你使用的是什麼版本的hibernate?你是否也使用hibernate註釋或javax.persistence註釋? – Vinc 2014-08-27 12:12:33
我沒有看到任何問題,如果我使用'javax.persistence.Entity',你可以發佈一些更多的細節,如hibernate.cfg.xml文件中的任何特定屬性和你的超類等等,以瞭解問題。 – Chaitanya 2014-08-27 12:41:10
@Entity和@Table都來自「javax.persistence」。休眠版本是4.3.1。 – MaDa 2014-08-27 13:00:42