2017-02-20 1 views
0

verweisen ich entwickle ein benutzerdefiniertes Portlet in Liferay 7 GA3.Liferay 7: Wie Benutzerklasse von vielen auf viele in benutzerdefinierten Portlet

Ich benutze Frühling Daten jpa in Mai Datenschicht, ich habe meine eigene Datenbank und meine eigene Verbindung, meine eigenen Entitäten kommentiert.

In einem meiner Entity-Klasse muss ich eine viele zu viele Beziehung mit der Benutzerklasse Liferay (com.liferay.portal.kernel.model.User),

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

aber ich bin Gettin den Fehler

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) 

weiß jemand wie kann ich das lösen?

danke im voraus

Antwort

2

Die Ausnahme ist klar. Sie verwenden Ihre eigene Ruhezustandkonfiguration, anstatt den liveray Service Builder zu verwenden. Dies geschieht, weil Ihre Entitäten im Ruhezustand die Zuordnung von User.class nicht enthalten.

Mit anderen Worten, verwenden Sie Service Builder-Modell-Entities, um in Liferay so zu arbeiten, wie Sie möchten, oder Sie können nur mit Ihren benutzerdefinierten Hibernate-Entities arbeiten.

Sie können dieses Problem auch "hacken", wenn Sie eine in Ihrer Hibernate-Konfiguration zugeordnete View SQL-Datei implementieren, die auf Benutzertabelle verweist, und Sie Ihr Listenobjekt auf Entität anzeigen festlegen. Aber ich empfehle es nicht.

+0

ok, danke für die Erklärung – Andrea

Verwandte Themen