2016-04-03 7 views
0

Wenn mein Projekt auf Frühling 2.5 und Hibernate 3.2 ausgeführt wird, funktioniert es gut.Nach Aktualisierung der Frühjahrsversion auf 4.1.6 und Ruhezustand Version 3.6.1 ich habe folgende Fehlermeldung:org.springframework.orm.hibernate3.HibernateSystemException: Unbekannte Entität: java.util.ArrayList

org.hibernate.MappingException: Unknown entity: java.util.ArrayList

Meine DAO-Funktion ist:

public void updateAll(Collection<EntityType> collection) { 
    try { 
    getHibernateTemplate().saveOrUpdateAll(collection); 
    } catch (Exception e) { 
     logger.error("updateAll :"+e); 
    } 
} 

Konfiguration ist:

<bean class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" id="sessionFactory"> 
    <property name="dataSource"> 
     <ref bean="dataSource"/> 
    </property> 
    <property name="annotatedClasses"> 
     <list> 
      <value>com.cptu.egp.eps.model.table.TblCountryMaster</value> 
      </list> 
    </property> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop> 
      <prop key="current_session_context_class">thread</prop> 
      <prop key="hibernate.cache.use_second_level_cache">true</prop> 
      <prop key="hibernate.connection.autocommit">true</prop> 
      <prop key="hibernate.cache.provider_class">     net.sf.ehcache.hibernate.EhCacheProvider</prop> 
      <prop key="hibernate.cache.provider_class"> net.sf.ehcache.hibernate.SingletonEhCacheProvider</prop> 
      <prop key="hibernate.max_fetch_depth">5</prop> 
      <prop key="hibernate.default_batch_fetch_size">16</prop> 
      <prop key="hibernate.jdbc.batch_size">25</prop> 
      <prop key="hibernate.jdbc.fetch_size">8</prop> 
      <prop key="hibernate.show_sql">false</prop> 
      <prop key="hibernate.connection.release_mode">after_statement</prop> 
     </props> 
    </property> 
</bean> 
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" p:sessionFactory-ref="sessionFactory" /> 

<bean class="org.springframework.orm.hibernate3.HibernateTemplate" id="hibernateTemplate"> 
    <property name="sessionFactory"> 
     <ref bean="sessionFactory"/> 
    </property> 
</bean> 

<bean id="hibernateInterceptor" class="org.springframework.orm.hibernate3.HibernateInterceptor"> 
    <property name="sessionFactory" ref="sessionFactory" /> 
</bean> 

Meine Entitätszuordnung Klasse:

@Entity 
@Table(name = "tbl_TenderEstCost", schema = "dbo") 
public class TblTenderEstCost implements java.io.Serializable { 

private int estCostLotId; 
private TblTenderMaster tblTenderMaster; 

public TblTenderEstCost() { 
} 

public TblTenderEstCost(int estCostLotId, TblTenderMaster tblTenderMaster) { 
    this.estCostLotId = estCostLotId; 
    this.tblTenderMaster = tblTenderMaster; 
} 

@Id 
@GeneratedValue(generator = "TblTenderEstCostSequence", strategy = GenerationType.IDENTITY) 
@SequenceGenerator(name = "TblTenderEstCostSequence", sequenceName = "tblTenderEstCost_sequence", allocationSize = 25) 

@Column(name = "estCostLotId", unique = true, nullable = false) 
public int getEstCostLotId() { 
    return this.estCostLotId; 
} 

public void setEstCostLotId(int estCostLotId) { 
    this.estCostLotId = estCostLotId; 
} 

@ManyToOne(fetch = FetchType.LAZY) 
@JoinColumn(name = "tenderId", nullable = false) 
public TblTenderMaster getTblTenderMaster() { 
    return tblTenderMaster; 
} 

public void setTblTenderMaster(TblTenderMaster tblTenderMaster) { 
    this.tblTenderMaster = tblTenderMaster; 
} 

} `

+0

Darf man den Code eingeben, der den Fehler verursacht? –

+0

Zeigen Sie bitte das Entity Mapping an. – dambros

+0

können Sie versuchen, Sie annountedClasses durch ersetzen ''? –

Antwort

1

Nach dem Quellcode, gibt es nicht saveOrUpdateAll() -Methode in 4.1.6, und es ist auch im Frühjahr veraltet 3.

.

http://grepcode.com/file/repo1.maven.org/maven2/org.springframework/spring-orm/4.1.6.RELEASE/org/springframework/orm/hibernate4/HibernateTemplate.java#HibernateTemplate

Es sieht so aus, als ob Sie die Sammlung an saveOrUpdate() übergeben und Hibernate die Zuordnungseinstellung nicht finden kann.

+0

Was könnte dann die mögliche Alternative sein? –

+0

Verwenden Sie foreach und saveOrUpdate(), denke ich. –

Verwandte Themen