Spring MongoDB: Attribut in der Superklasse und @Indexed erst in der Subklasse

Diskutiere Spring MongoDB: Attribut in der Superklasse und @Indexed erst in der Subklasse im Datenbankprogrammierung Bereich.
S

Schuriko

Hi Leute,

ich habe momentan folgendes Problem:

ich habe eine Superklasse (hier symbolisch dargestellt):
Code:
class MySuperClass {
    private String name;
    ...
}
und ich habe hiervon abgeleitet eine Subklasse (hier symbolisch dargestellt)
Code:
    @document(collection="abc")
class MySubClass extends MySuperClass {

    @Indexed
    private String name;
    ...
}
Die Subklasse dient als Entity zum speichern in eine MongoDB. Beide Klassen haben das Attribut "name", wobei sie in der Datenbank indiziert sein soll.
Schreibe ich es so wie folgt oben dargestellt, dann wird mir bereits in meiner Eclipse gesagt:
The annotation @indexed is disallowed at this location
Füge ich das Index allerdings der in der Superklasse ein wird mir das gleiche gesagt. Wie löse ich dieses Problem?
 
T

thecain

Stimmt der Import?

Eclipse kann das eigentlich nur sagen, wenn die Annotation auf dem Type Field nicht erlaubt ist.
 
T

thecain

Ist das richtige Indexed importiert?

Und in beiden Klassen das Selbe private Attribut zu haben macht mMn nicht besonders viel Sinn
 
S

Schuriko

Ist das richtige Indexed importiert?

Und in beiden Klassen das Selbe private Attribut zu haben macht mMn nicht besonders viel Sinn
okay wie würdest du dann folgendes lösen
Code:
   ClassA {
         string name;

         ....
   }

  @document(collection="collectionB")
   ClassB extends ClassA{

          @indexed
         string name;
   }

  @document(collection="collectionC")
   ClassC {
            ClassA classA;
   }
Die Superklasse beinhaltet Wert die in ClassB und ClassC verwendet werden. Bei ClassB ist der Wert allerdings indiziert für eine Suche. In ClassC ist sie nicht indiziert, sondern dient einfach zur Aufnahme von Werten.
 
mrBrown

mrBrown

Entweder auf die Vererbung verzichten oder den zusätzlichen Index "in Kauf nehmen".

Das Attribut zusätzlich in der Unterklasse deklarieren ist zumindest Unsinn und macht vermutlich auch nicht das, was du erwartest.
 
Thema: 

Spring MongoDB: Attribut in der Superklasse und @Indexed erst in der Subklasse

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben