我可以提供一些用於生成FK030HF9840303的smth intead的算法嗎?我們如何改變在hibernate中生成PK和FK名字的方法?
2
A
回答
3
您需要實現自己的NamingStrategy(org.hibernate.cfg.NamingStrategy)。也許子類化你當前使用的是最簡單的方法(默認情況下,hibernate使用的是DefaultNamingStrategy)。
然後用你的命名策略配置SessionFactory:
SessionFactory sf = new Configuration()
.setNamingStrategy(new YourNamingStrategy())
.addFile(...)
.buildSessionFactory();
或通過在會話工廠春天依賴注入,如果你正在使用它:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
...
<property name="namingStrategy">
<ref bean="namingStrategy" />
</property>
...
0
還,如果你有一個特定的您要使用的非編程命名策略只能更改hbm.xml文件的外鍵映射。這是所有相關設置的屬性等。
1
您無法用批註或命名策略覆蓋任何內容。例如,連接表的FK不能使用命名策略來指定,並且使用註釋會很痛苦。
如果你願意來配置一切以同樣的方式,你可以將你模式導出到數據庫
AnnotationConfiguration configuration = ...;
Iterator<Table> tables = configuration.getTableMappings();
...
Iterator<ForeignKey> keys = table.getForeignKeyIterator();
while (keys.hasNext()) {
ForeignKey key = keys.next();
key.setName(...);
}
...
SchemaExport schemaExport = new SchemaExport(configuration);
schemaExport.setHaltOnError(true);
schemaExport.execute(false, true, false, true);
List exceptions = schemaExport.getExceptions();
...
之前修改註釋配置
相關問題
- 1. Hibernate Inheritance.JOINED生成FK名
- 2. EF和字符PK/FK
- 3. Hibernate的實體不PK,但有FK
- 4. 分配Pk和FK
- 5. 休眠。我們如何使用註釋來設置PK/FK的名稱?
- 6. EF6 PK和FK約束命名約定
- 7. Sybase Powerdesigner - 如何自動格式化PK和FK的命名?
- 8. SQL Server表PK和FK
- 9. Spring + Hibernate:如何擁有一個可配置的PK生成器?
- 10. Hibernate使用命名策略生成PK ID
- 11. 如何在同一屬性中定義PK和FK
- 12. 如何創建PK/FK關係字符串和uniqueidentifier?
- 13. FK自我參照生成
- 14. Django - 保存一個新的table1.PK和table2.PK和table2.FK
- 15. Hibernate何時從FK創建一個新條目到非PK列?
- 16. DB設計FK&PK
- 17. CodeFirst EF 4.1繼承 - 重命名PK/FK
- 18. Spring和Hibernate - 改變方言
- 19. 如何在AS3中生成變量名?
- 20. 我們如何更改一個magento模塊的方法名稱?
- 21. Hibernate映射兩個表相同的PK值(NO FK COL)
- 22. 與FK的EclipseLink複合PK
- 23. 跨行的fk pk關係
- 24. 重命名錶SQL Server,通過PK和FK的級聯該更改
- 25. 數字生成器方法的名稱
- 26. JPA @OneToMany與複合PK - PK/FK重疊
- 27. 如何自動爲我們在eclipse rcp中編寫的方法生成註釋?
- 28. 我如何在調用Spark SaveAsTextFile方法時生成文件名
- 29. 在Rails上使用字符串作爲PK和FK 4
- 30. Java如何爲方法生成簽名?