2012-02-08 7 views
3

dynamic-insert属性をHibernateでグローバルに設定する方法はありますか(それはすべてのエンティティのデフォルトになります)? NHibernateの中Hibernate global "dynamic-insert"

答えて

3

それは私が休止状態での正確な構文を知らない

foreach (var clazz in config.ClassMappings) 
{ 
    clazz.DynamicInsert = true; 
} 

です。 Javaの休止については

for (PersistentClass clazz : configuration.ClassMappings) 
{ 
    clazz.setDynamicInsert(true); 
} 
+0

「ClassMetaData」にこのメソッドを思い出させるものはありませんでしたが、 'PersistentClass.setDynamicInsert(boolean)'メソッドがあります。それが何とか私を助けるかどうかを確認する必要があります – Alex

+0

は、より正確なコードを表示するように編集しました – Firo

1

、正しい答えは次のとおりです。

Iterator mappingClasses = config.getClassMappings(); 
while(mappingClasses.hasNext()) { 
    PersistentClass clazz = (PersistentClass) mappingClasses.next(); 
    clazz.setDynamicInsert(true); 
    clazz.setDynamicUpdate(true); 
} 

は、あなたがそれらを反復する前に、マッピングを構築する必要があることに注意してください。それ以外の場合はconfig.getClassMappings()は空のイテレータを返します。

config.buildMappings();