2010-05-07 52 views
1

我試圖把一個實體在不同的Maven項目。在當前項目中,我有:Hibernate3的,Maven的插件:在不同的Maven項目entiries和hbm2ddl失敗

@Entity 
public class User { 
... 
private FacebookUser facebookUser; 
... 
public FacebookUser getFacebookUser() { 
    return facebookUser; 
} 
... 
public void setFacebookUser(FacebookUser facebookUser) { 
    this.facebookUser = facebookUser; 
} 

然後FacebookUser(在不同的Maven項目,這是目前的一個項目的依賴)定義爲:

@Entity 
public class FacebookUser { 
... 
@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
public Long getId() { 
    return id; 
} 

這裏是我的Maven Hibernate3的-maven-插件配置:

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>hibernate3-maven-plugin</artifactId> 
      <version>2.2</version> 
      <executions> 
      <execution> 
       <phase>process-classes</phase> 
       <goals> 
       <goal>hbm2ddl</goal> 
       </goals> 
      </execution> 
      </executions> 
      <configuration> 
      <components> 
       <component> 
       <name>hbm2ddl</name> 
       <implementation>jpaconfiguration</implementation> 
       </component> 
      </components> 
      <componentProperties> 
       <ejb3>false</ejb3> 
       <persistenceunit>Default</persistenceunit> 
       <outputfilename>schema.ddl</outputfilename> 
       <drop>false</drop> 
       <create>true</create> 
       <export>false</export> 
       <format>true</format> 
      </componentProperties> 
      </configuration> 
     </plugin> 

這是我得到的錯誤:

org.hibernate.MappingException: Could not determine type for: com.xxx.facebook.model.FacebookUser, at table: user, for columns: [org.hibernate.mapping.Column(facebook_user)] 

我知道FacebookUser是在類路徑上,因爲如果我讓Facebook用戶短暫,項目編譯罰款:

@Transient 
public FacebookUser getFacebookUser() { 
    return facebookUser; 
} 
+0

你可以在插件的類路徑當它運行? – Justin 2010-09-09 12:45:52

回答

0

一個FacebookUser是不是基本類型,不能在User表中的列被持久化,這是一個真正的實體,實際上是堅持在另一個表中。你在這裏是什麼UserFacebookUser之間的一個一對一的關係,你需要將其申報爲這樣:

@OneToOne 
public FacebookUser getFacebookUser() { 
    return facebookUser; 
} 
+0

當我做@OneToOne我收到了類似的錯誤,但它仍然抱怨說,它無法找到com.xxx.facebook.model.FacebookUser – Mike 2010-05-07 20:15:45

+0

不是說沒有@OneToOne是沒有問題的...... – Mike 2010-05-07 20:18:21

+0

@Mike這是奇怪的。你能說明你是如何註解'User'的嗎?所有依賴項都是最新的嗎? – 2010-05-07 20:23:41