我有一個多對多關聯的兩個實體。如果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. 是否可以在SAP HANA的虛擬表上創建索引?
- 7. 索引創建是否可以使用現有索引?
- 8. 是否可以使用註釋來連接Spring MVC攔截器?
- 9. 是否可以使用PHP和HTML創建搜索引擎?
- 10. Hibernate空間索引註釋
- 11. 我可以使用jaxb與hibernate hbm2ddl嗎?
- 12. Hibernate hbm2ddl模式創建和Maven測試
- 13. 是否可以使用jpa1 @notnull註釋?
- 14. 使用EF 5創建通過數據註釋創建索引
- 15. 用Facebook連接創建註釋
- 16. 是否可以使用Objectify創建降序索引?
- 17. 是否有可能追溯在表上使用的「創建索引」語句
- 18. 使用Hibernate註釋操作連接錶行排序
- 19. 是否有可能使用就是hbm2ddl
- 20. hibernate是否可以創建數據庫和數據庫用戶?
- 21. 爲什麼hibernate創建連接表以及連接列?
- 22. MySQL是否在創建新索引時使用現有索引?
- 23. 在Hibernate中:是否可以混合實體的註釋和XML配置?
- 24. 是否可以在scala中註釋lambda?
- 25. 如何自定義使用Hibernate的hbm2ddl生成的DDL(使用註釋)?
- 26. 是否可以在索引操作(rails 3.2.12)中創建params [:customer]?
- 27. hbm2ddl忽略@Column註釋?
- 28. 在Google Appengine上使用Python創建線索註釋的模型
- 29. 是否可以引用註釋方法中的@RequestMapping值?
- 30. SQL Server使用連接表創建索引目錄