2016-12-05 100 views
0

我入門級的Java開發人員,我有項目,Hibernate和屬性文件hibernate.cfg.xml這樣休眠 - 掃描實體

<?xml version="1.0" encoding="utf-8" ?> 
<!DOCTYPE hibernate-configuration PUBLIC        
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
    <session-factory> 
     <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
     <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/account?useSSL=false</property> 
     <property name="hibernate.connection.password">root</property> 
     <property name="hibernate.connection.username">root</property> 
     <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 
     <property name="show_sql">true</property> 
     <property name="hbm2ddl.auto">create</property> 
     <mapping class="ua.com.vtkachenko.entity.Group"></mapping> 
     <mapping class="ua.com.vtkachenko.entity.Movement"></mapping> 
     <mapping class="ua.com.vtkachenko.entity.Product"></mapping> 
     <mapping class="ua.com.vtkachenko.entity.Description"></mapping> 
    </session-factory> 
</hibernate-configuration> 

如何設置實體類的自動掃描並刪除此行?

<mapping class="ua.com.vtkachenko.entity.Group"></mapping> 
<mapping class="ua.com.vtkachenko.entity.Movement"></mapping> 
<mapping class="ua.com.vtkachenko.entity.Product"></mapping> 
<mapping class="ua.com.vtkachenko.entity.Description"></mapping> 
+1

從DTD:'< !ATTLIST mapping package CDATA #IMPLIED>'so'' – 2016-12-05 12:37:19

+0

我替換代碼片段: ' <映射類=」 ua.com.vtkachenko.entity.Description 「>' 通過 '<映射包=」 ua.com.vtkachenko.entity「/>'但仍不很工作。 @RC – Vlad

回答

0

當你定義在Spring上下文文件sessionfactory豆,你可以使用packagesToScan財產和@Entity註解來實現這一目標。

代碼片段:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    ... //other properties 
    <property name="packagesToScan" value="ua.com.vtkachenko.entity"> 
    ../other properties 
</bean> 

現在寫@Entity標註實體類以上。你的實體類也應該有@Column註解來映射表列。

希望它有幫助。如果您有任何問題,請告訴我。

+0

我插入此爲我的應用程序-context.xml中,並在線程「主要」 org.hibernate.MappingException得到錯誤 _Exception:未知實體:ua.com.vtkachenko.entity.Group \t在org.hibernate.impl .SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:548)..............._ – Vlad

+0

我認爲在Spring中使用Hibernate的時候解決這個問題是正確的方法。 在我的例子中,我有這樣的項目結構 ![截圖](https://s18.postimg.org/w29vccrih/Screenshot_from_2016_12_05_16_16_19.png)。 – Vlad

0

我建議你學習而不是這個:Spring引導和JPA。

如果您的目標只是學習,恕我直言,它會爲您節省很多頭痛。

問候

+0

Spring Boot和JPA確實提供了一個非常簡潔的快速入門,但是隨着注入和調試Spring(春天非常龐大而壓倒性的),我得到了嚴重的頭痛。我最終放棄了,並且完全停止使用Spring和JavaEE,並轉移到:https://github.com/mvysny/vaadin-on-kotlin(免責聲明 - 我是作者) –