2011-03-11 31 views
6

Şu anda, Uygulamamızı Hazırda Bekletme 3.2.5'ten 3.6.1'e geçirirken çok fazla sorunla karşı karşıyayız. Biz karşı karşıyaHazırda Bekletme 3.2.5 - 3.6

ilk hatadır:

CİDDİ: Geçersiz sütun adı 'btn_name'. Btn_name hiçbir yerde haritalandırılmamış olsa da. Gerçek haritalama btnName'dir.

İşte btnName adında bir alan vardır eşleme-alt sınıf katıldı com.sampleproject.client.beansdm.metadata.uicontrols.InputControl benim eşleme dosyası

<hibernate-mapping> 
    <class abstract="true" name="com.sampleproject.client.beansdm.metadata.Component" 
     table="component_master"> 
     <id column="metadata_id" name="id" type="long"> 
      <generator class="native" /> 
     </id> 
     <property column="metadata_type" name="type" type="string" /> 
     <property name="createdDateTime" column="created_date" type="date" 
      update="false"></property> 
     <property name="version" type="string" column="version_id"></property> 
     <property name="currentDate" type="date" column="curr_date"></property> 
     <property name="currentIP" type="string" column="current_ip"></property> 
     <many-to-one name="currentUser" 
      class="com.sampleproject.client.beansdm.domain.common.User" cascade="refresh" 
      column="current_user_id"></many-to-one> 
     <property name="latestDate" type="date" column="latest_date"></property> 
     <property name="latestIP" type="string" column="latest_ip"></property> 
     <many-to-one name="latestUser" 
      class="com.sampleproject.client.beansdm.domain.common.User" cascade="refresh" 
      column="latest_user"></many-to-one> 
     <property name="recordStatus" type="boolean" column="record_status"></property> 
     <property name="portal" type="string" column="portal"></property> 
     <many-to-one cascade="refresh,save-update,delete" 
      class="com.sampleproject.client.beansdm.metadata.Component" column="md_id" 
      name="metadata" not-null="false" /> 

     <joined-subclass 
      name="com.sampleproject.client.beansdm.metadata.uicontrols.UIControl" 
      table="ui_control_master"> 
      <key column="ui_control_id" /> 
      <property column="display_name" name="displayText" /> 
      <property column="help_text" name="helpText" /> 
      <property column="info_text" name="informativeText" /> 
      <property column="rows" name="rows" type="integer" /> 
      <property column="cols" name="cols" type="integer" /> 
      <property column="btnName" name="btnName" type="string" /> 
      <property name="version" type="string" column="version_id"></property> 
      <property name="currentDate" type="date" column="curr_date"></property> 
      <property name="currentIP" type="string" column="current_ip"></property> 
      <many-to-one name="currentUser" 
       class="com.sampleproject.client.beansdm.domain.common.User" cascade="refresh" 
       column="current_user_id"></many-to-one> 
      <property name="latestDate" type="date" column="latest_date"></property> 
      <property name="latestIP" type="string" column="latest_ip"></property> 
      <many-to-one name="latestUser" 
       class="com.sampleproject.client.beansdm.domain.common.User" cascade="refresh" 
       column="latest_user"></many-to-one> 
      <property name="recordStatus" type="boolean" column="record_status"></property> 
      <property name="portal" type="string" column="portal"></property> 
      <property name="readOnly" type="boolean" column="read_only"/> 

      <joined-subclass 
       name="com.sampleproject.client.beansdm.metadata.uicontrols.InputControl" 
       table="input_control_master" lazy="true"> 
       <key column="input_control_id" /> 
       <property column="default_value" name="defaultValue" 
        not-null="false" /> 
       <property column="is_fk" name="fk" /> 
       <property column="validatable" name="validatable" /> 
       <property column="violatable" name="violatable" /> 
       <property name="isRequired" column="is_required"></property> 
       <property name="ruleType" 
        type="com.sampleproject.facadeimplementation.util1.UserEnumRuleType" 
        column="rule_type"></property> 
       <property name="fileType" column="file_type"></property> 
       <property name="maxFileSize" column="max_file_size" type="integer"></property> 
       <property name="precision" column="input_precision" type="integer"></property> 
       <property name="maxLength" column="maxlength" type="integer"></property> 
       <property name="minLength" column="minlength" type="integer"></property> 
       <property name="dateFormatType" column="dateformat" 
        type="com.sampleproject.facadeimplementation.util1.UserEnumDateFormatType"></property> 
       <property name="specialCharAllow" column="isspecialcharallow"></property> 
       <property name="specialChars" column="specialchars" type="string"></property> 
       <property name="dateType" 
        type="com.sampleproject.facadeimplementation.util1.UserEnumDateType" 
        column="date_type"></property> 
       <property name="minDate" column="mindate" type="string"></property> 
       <property name="maxDate" column="maxdate" type="string"></property> 
       <property name="inspection" column="inspection" type="boolean"></property> 
       <property name="values" column="default_values" type="string"></property> 
       <property name="targetNames" column="target_names" type="string"></property> 
       <!-- 
        <many-to-one cascade="save-update, delete" 
        class="com.sampleproject.client.beansdm.metadata.Column" 
        column="target_column_id" name="targetColumn" /> 
       --> 
       <property name="targetColumn" column="target_column" type="string"></property> 
       <property name="templateName" column="template_name" type="string"></property> 
       <!-- 
        <bag name="targetColumnNames" cascade="save-update" 
        table="input_possible_columns_map"> <key 
        column="input_control_id"></key> <element column="column_name" 
        not-null="true" type="string" /> </bag> 
       --> 
       <!--<bag name="possibleValues" cascade="save-update" table="input_possible_values_map"> 
        <key column="input_control_id" /> 
        <many-to-many 
         class="com.sampleproject.client.beansdm.metadata.uicontrols.PossibleValue" 
         column="value" /> 
       </bag> 
       --><property name="seperator" column="seperator" type="string" /> 
       <many-to-one name="refTable" cascade="refresh" 
        class="com.sampleproject.client.beansdm.metadata.Table" column="ref_table_id" lazy="false"> 
       </many-to-one> 
       <many-to-one name="targetTable" cascade="refresh" 
        class="com.sampleproject.client.beansdm.metadata.Table" column="target_table_id" /> 
       <property name="version" type="string" column="version_id"></property> 
       <property name="currentDate" type="date" column="curr_date"></property> 
       <property name="currentIP" type="string" column="current_ip"></property> 
       <many-to-one name="currentUser" 
        class="com.sampleproject.client.beansdm.domain.common.User" cascade="refresh" 
        column="current_user_id"></many-to-one> 
       <property name="latestDate" type="date" column="latest_date"></property> 
       <property name="latestIP" type="string" column="latest_ip"></property> 
       <many-to-one name="latestUser" 
        class="com.sampleproject.client.beansdm.domain.common.User" cascade="refresh" 
        column="latest_user"></many-to-one> 
       <property name="recordStatus" type="boolean" column="record_status"></property> 
       <property name="portal" type="string" column="portal"></property> 
       <many-to-one name="linkedColumn" cascade="refresh" 
        class="com.sampleproject.client.beansdm.metadata.Column" column="linked_column_name"> 
       </many-to-one> 
       <many-to-one name="linkedMasterColumn" cascade="refresh" 
        class="com.sampleproject.client.beansdm.metadata.Column" column="linked_master_column"> 
       </many-to-one> 
       <many-to-one name="linkedTable" cascade="refresh" 
        class="com.sampleproject.client.beansdm.metadata.Table" column="linked_master_id"> 
       </many-to-one> 
      </joined-subclass> 
     </joined-subclass> 
    </class> 
</hibernate-mapping> 

Odak olduğunu. Onun 3.2.5 sürümü ile iyi çalışıyor ama ben daha yeni hazırda bekleme versiyonuna değiştirdiğimde yanıt vermeyi kesiyor.

Muhtemel bir kavanoz çatışması var mı?

Lütfen

Yardım edin.

teşekkür Sen, Selamlar,

cevap

5

Hibernate Version Comparison kılavuz devletler 3.6 3,5'ten hareketli:

Ancak yine de hbm.xml kullanan kullanıcılar için biz seçtik bilmelidir kullanım org.hibernate.cfg.EJB3NamingStrategy AnnotationConfigration eski org.hibernate.cfg.DefaultNamingStrategy saat yerine kullanılan Yapılandırmada istorically kullanılır. Bu, ad uyumsuzluklarına neden olabilir; Eğer bir dernek (çoğa-çok ve elemanların koleksiyonları) tablo adını varsayılan için adlandırma stratejisi güvenmek durumunda bu bir sorundur bir bilinen bir yer olduğunu. Bu durumda kendinizi bulursanız, INSTANCE

geçirmeden org.hibernate.cfg.DefaultNamingStrategy # Yapılandırma # setNamingStrategy arama ve tarafından miras org.hibernate.cfg.DefaultNamingStrategy kullanmak Hibernate söyleyebilir

NamingStrategy arayüzü EJB3NamingStrategy tarafından uygulanan sütun ve birlikler adlarını belirlemek için kullanılan String foreignKeyColumnName(String propertyName, String propertyEntityName, String propertyTableName, String referencedColumnName) gibi çeşitli yöntemleri tanımlar. Bu yöntemlerin uygulanmasına EJB3NamingStrategy sınıfında bakmanızı ve özellik adlarını sütun adlarına nasıl dönüştürdüğünü görmenizi öneririm.

Hazırda bekletme gibi görünüyorsa, alt çizgi, DB'deki sütun adının bu dönüşümler aracılığıyla olmasını beklediğini ekliyor ve veritabanınızda 'btn_name' sonuç sütununu bulamadığında üzülüyor.

+0

Güzel Yanıtlar ... Kendi EJB3NamingStrategy yazılımını, onu genişleterek ve yöntemleri iyi bir şekilde hazırlayarak ve iyi bir şekilde hazırda bekleterek sağlayarak oluşturabilir miyim? –

+0

Son adımım ne olmalı? Neredeyse 190 masaya sahibim ve hbm'yi hepsinin ek açıklamalarına dönüştürmek neredeyse imkansız. Zamanını ve çabalarını takdir ettim teşekkür ederim. –

+0

Farklı bir NamingStrategy kullanmak için hbm'den ek açıklamalara geçmek zorunda değilsiniz. Bkz. Http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/session-configuration.Yeni bir NamingStrategy'nin nasıl uygulanacağına ilişkin ayrıntılar için html # configuration EJB3NamingStrategy'yi sadece üzüntüye neden olan isimleri değiştirerek bile genişletebilirsiniz. Ayrıca yapılandırma dosyanızdaki show_sql seçeneğini de açacağım, böylece hazırda bekletme komutlarının db'nize erişmek için hangi komutları kullandığını görebilirsiniz. –

İlgili konular