2017-03-17 6 views
2

Ich verwende JPA für meine Entitätsklassen, aber JPA führt die Setter für meine Parameter nicht aus. Ich habe diese Klasse:Stellen Sie sicher, dass JPA Setter verwendet

@Entity 
public class Groep implements Serializable, IGroep { 

    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private int groepID; 
    private String naam; 
    @Column(name = "MOTIVATIE", length = 1000) 
    private String motivatie; 

    protected Groep(){ 

    } 

    @Override 
    public String getMotivatie() { 
    return motivatie; 
    } 

    public void setMotivatie(String motivatie) { 
    System.out.println("domein.Groep.setMotivatie()"); 
    this.motivatie = motivatie; 
    } 
} 

Aber ich sehe nie das System.out ... Was ist das Problem?

+0

Versuchen Sie '@Access (AccessType.PROPERTY)' in der Klasse hinzuzufügen. Ich habe das nicht gemacht, weil ich möchte, dass es die Felder für mich schreibt, ohne die Setter zu benutzen. – coladict

+0

Mit @Access (AccessType.PROPERTY) geben Sie mir Fehler in der DAO –

+0

Welche Art von Fehlern? Ich habe auch noch den Vorteil gefunden, das DAO-Muster zu verwenden, das ich an vielen Stellen sehe, an denen Sie für jede Aktion eine Schnittstelle und dann eine Implementierung definiert haben. Es scheint nur, dass sie Probleme schaffen, anstatt sie zu lösen. – coladict

Antwort

0

Bitte teilen Sie den vollen Code .. Welcher Wert wird eingestellt? Bei String Motivatie ...

Sie können eine Klasse festlegen Wert für das Feld String Motivatie ... Teilen Sie diesen Code verwenden ..

2

Der Zugriffstyp hängt davon ab, wo Sie die Anmerkungen platzieren. Sie haben sie auf Instanzvariablen platziert, so dass der Persistenzanbieter versucht, direkt auf sie zuzugreifen.

Wenn Sie mit Hibernate, wie Sie Anbieter Ausdauer, können Sie einfach definieren Sie Ihre @Id auf diese Weise:

Als JPA-Provider kann Hibernate introspect sowohl die Entitätsattribute (Instanzfelder) oder die Accessoren (Instanzeigenschaften) Standardmäßig gibt die Platzierung der @ Id Annotation die Standardzugriffsstrategie.

Denken Sie daran, dass Sie in Ihrer Annotation Placement-Strategie in Bezug auf alle Entitäten konsistent sein sollten.

Verwandte Themen