2017-11-21 4 views
1

Hallo Ich habe das Breitblättrige Produktentität erweitert und hinzugefügt, um die Admin-Präsentation Anmerkung auf der Admin-Seite angezeigt werdenLaub-: Verlängerung Produktentität fehlgeschlagen

Hier ist mein Code, um das Unternehmen zu erweitern ein neues Attribut dieser Entität und das hinzugefügt:

@AdminPresentationMergeOverrides({@AdminPresentationMergeOverride(name = "ExtendProductImpl.productWarranty", mergeEntries = {@AdminPresentationMergeEntry(propertyType = PropertyType.AdminPresentation.EXCLUDED, booleanOverrideValue=false)})}) 
public class ExtendProductImpl extends ProductImpl implements ExtendProduct { 

@Column(name ="PRODUCT_WARRANTY") 
@AdminPresentation(friendlyName = "product warrenty", 
tab = TabName.General) 

private String productWarranty; 

public String getProductWarranty() { 

return productWarranty; 

} 



public void setProductWarranty(String productWarranty) { 

this.productWarranty = productWarranty; 

}} 

ist hier meine XML-Dateien in Core (ApplicationContextEntity.xml):

http://i.prntscr.com/u2UjARtwRVmI-PswDzxErw.png

Hier die eine andere XML-Datei (Persistant-Core):

http://i.prntscr.com/9Z8y_SplQNKp7HjCw4XyiA.png

Hier ist die Ausgabe Screenshot Nachdem die Änderungen:

http://i.prntscr.com/Gv-ssCaSTa2QbbS5rLB2vg.png

http://i.prntscr.com/eGWugVJRQ-aQqS_heWHsxw.png

Bitte helfen Sie mir das zu lösen Problem.

Dank im Voraus

Antwort

1

Sie brauchen 1 mehr, was zu tun und die Demo-Produkte, um alle Ihre erweiterten Typ zu aktualisieren. Das Problem besteht darin, dass Hibernate sie weiterhin als ProductImpl und nicht als ExtendProductImpl behandelt, wenn Sie sich immer noch auf die Demodaten verlassen. In Ihrem Code-Snippet haben Sie auch keine @javax.persistence.Entity oder @javax.persistence.Table Annotationen. Darüber hinaus ist es in der Regel nicht erforderlich, eine Schnittstelle für Ihr benutzerdefiniertes Domänenobjekt zu erstellen. Dies ist optional. So davon aus, dass es eigentlich ist:

@Entity 
@Table(name = "ext_product") 
@AdminPresentationMergeOverrides({@AdminPresentationMergeOverride(name = "ExtendProductImpl.productWarranty", mergeEntries = {@AdminPresentationMergeEntry(propertyType = PropertyType.AdminPresentation.EXCLUDED, booleanOverrideValue=false)})}) 

public class ExtendProductImpl erweitert ProductImpl implementiert ExtendProduct {

Sie sollten dann die Demo-Daten für alle aktualisieren sein von ExtendProductImpl Art von Daten in die Unterklasse Einfügen:

INSERT INTO ext_product (PRODUCT_ID) (SELECT PRODUCT_ID FROM BLC_PRODUCT) 

Schließlich könnten Sie auch sicherstellen wollen, dass, wenn Sie ein Produkt im Admin erstellen, ist es immer vom Typ ExtendProductImpl sein sollte. Dazu verwenden @AdminPresentationClass:

@Entity 
@Table(name = "ext_product") 
@AdminPresentationClass(ceilingDisplayEntity = "com.mycompany.ExtendProductImpl") 
@AdminPresentationMergeOverrides({@AdminPresentationMergeOverride(name = "ExtendProductImpl.productWarranty", mergeEntries = {@AdminPresentationMergeEntry(propertyType = PropertyType.AdminPresentation.EXCLUDED, booleanOverrideValue=false)})}) 
public class ExtendProductImpl extends ProductImpl implements ExtendProduct { 
+0

hier ist mein volles Programm Screenshot http://i.prntscr.com/EHi1xdnWQMyskdoXbFMw7A.png wenn möglich sagen Sie mir suggetions zu meinen Code aktualisieren –

+0

hier wird die Beispieldaten i manuell hinzugefügt Datenbank http://i.prntscr.com/Ev8gUyarSCOkJuzfHIY8DQ.png –

+0

nachdem sie die Änderungen in meinem Code anwenden, wie Sie es gesagt wird die Anzeige aber das neue Produkt Zugabe gibt hier der folgende Fehler der Screenshot Fehler http://i.prntscr.com/f1FJWwonTxWfcOdzoPbrrQ.png bitte helfen Sie mir zu lösen –

Verwandte Themen