我有一個多對多關聯的兩個實體。如果hbm2ddl被激活,Hibernate爲這個關聯創建一個連接表。但是,由於我沒有此表的實體,因此我無法應用@Index註釋。有沒有辦法告訴hibernate hbm2ddl在連接表上生成索引和主鍵?是否可以使用Hibernate註釋和hbm2ddl在連接表上創建索引?
2
A
回答
0
一個選項是使用auxiliary database objects,但它會要求您從JPA註釋切換到傳統.hbm.xml
文件。
下面是一個例子:
<!-- class mapping: -->
<class name="Entity1" table="Entity1">
<!-- insert other mappings here -->
<!-- this class's half of the many-to-many relationship: -->
<set name="Entity2s" table="TheJoinTable">
<key column="Entity1ID" />
<many-to-many class="Entity2" column="Entity2ID" />
</set>
</class>
<!-- auxiliary object: -->
<database-object>
<create>CREATE INDEX MyIndex ON TheJoinTable(Entity1ID)</create>
</database-object>
另一種選擇是隻硬着頭皮創建一個完整的實體,以取代連接表。這實際上是我在類似情況下所做的。
希望這會有所幫助。
0
您可以在集合表註釋中應用索引。例如:
@javax.persistence.ElementCollection(fetch = javax.persistence.FetchType.LAZY)
@javax.persistence.CollectionTable(
name = "TheJoinTable",
indexes = {
@Index(name = "MyIndex", columnList = "Entity1ID")},
joinColumns = {
@JoinColumn(name = "TheJoinColumn")}
)
相關問題
- 1. 如何使用Hibernate註釋在連接表上創建索引?
- 2. Hibernate無法使用註釋創建連接的子類表
- 3. 從註釋創建表時,Hibernate不會創建索引
- 4. 表不是由hibernate的hbm2ddl創建的
- 5. 是否可以在索引上創建索引?
- 6. 您是否需要在Hibernate表的@id列上創建索引
- 7. 是否可以在SAP HANA的虛擬表上創建索引?
- 8. 索引創建是否可以使用現有索引?
- 9. 是否可以使用註釋來連接Spring MVC攔截器?
- 10. 是否可以使用PHP和HTML創建搜索引擎?
- 11. Hibernate空間索引註釋
- 12. 是否可以使用UIMA創建註釋層次結構?
- 13. 使用SELECT INTO時,是否可以在臨時表上創建索引?
- 14. 我可以使用jaxb與hibernate hbm2ddl嗎?
- 15. Hibernate hbm2ddl模式創建和Maven測試
- 16. 是否可以使用jpa1 @notnull註釋?
- 17. Hibernate註釋創建關係
- 18. 無法創建表Hibernate註釋
- 19. 使用EF 5創建通過數據註釋創建索引
- 20. 用Facebook連接創建註釋
- 21. 是否可以使用Objectify創建降序索引?
- 22. 使用註釋創建新聞更新,如何連接表?
- 23. 是否有可能追溯在表上使用的「創建索引」語句
- 24. 是否有可能使用就是hbm2ddl
- 25. 使用Hibernate註釋操作連接錶行排序
- 26. 是否可以使用JPa和Hibernate?
- 27. 是否可以在子文檔列表上創建唯一索引?
- 28. 是否可以爲臨時表創建索引
- 29. hibernate是否可以創建數據庫和數據庫用戶?
- 30. 爲什麼hibernate創建連接表以及連接列?