2017-02-20 49 views
0

我正在開發Liferay 7 ga3中的自定義Portlet。我在我的數據庫中使用彈簧數據jpa,我有我自己的數據庫和我自己的連接,我自己的實體被註釋。Liferay 7:如何在許多自定義Portlet中引用用戶類

在我的實體類之一,我需要很多與Liferay的用戶類別(com.liferay.portal.kernel.model.User)一對多的關係,

@ManyToMany 
@JoinTable(name = "authuserservice", joinColumns = @JoinColumn(name = "servicename"), inverseJoinColumns = @JoinColumn(name = "screenName")) 
List<User> users; 

但我想趁自己的錯誤

Caused by: org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: it.realt.trasparenza.services.services.Service.users[com.liferay.portal.kernel.model.User] 
    at org.hibernate.cfg.annotations.CollectionBinder.bindManyToManySecondPass(CollectionBinder.java:1223) 
    at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:800) 
    at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:725) 
    at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:54) 
    at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1621) 
    at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1589) 

沒有人知道我該如何解決這個問題?

在此先感謝

回答

2

例外情況很明顯。您正在使用自己的hibernate配置,而不是使用liferay服務構建器。發生這種情況是因爲你的hibernate實體不包含User.class映射。

換句話說,使用服務構建器模型實體以您想要的方式在liferay中工作,或者您將只能使用自定義的hibernate實體。

如果您在指向用戶表的hibernate配置中實現映射的View SQL,並且將您的列表對象定義爲View實體,那麼您也可以「解決」這個問題。但我不推薦它。

+0

好的,謝謝你的解釋 – Andrea

相關問題