AppletTalk.com Forum Index AppletTalk.com
Java discussions newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

[JSR 303] Constraints aufheben

 
Post new topic   Reply to topic    AppletTalk.com Forum Index -> Java Language (German)
View previous topic :: View next topic  
Author Message
Markus Malkusch
Guest





PostPosted: Fri Aug 10, 2012 11:23 am    Post subject: [JSR 303] Constraints aufheben Reply with quote



Wir haben hier ein Spring Projekt, bei dem die Formulareingaben mit
Annotation Constraints validiert werden. Ich denke das benutzt Hibernate
zum Validieren.

Ich habe hier nun eine abgeleitete Klasse bei der ich einen Constraint
aufheben will:

class A {

@Size(min = 1, max = 2)
public String getCountryCode() {
return countryCode;
}

}

class B {

@Size(min = 1, max = 3)
@Override
public String getCountryCode() {
return super.getCountryCode();
}

}

Das funktioniert leider nicht wie gewünscht. Ich habe nun auch gelesen,
dass beim Überschreiben die Constraints aggregiert werden, also der
ursprüngliche max=2 erhalten bleibt. Das finde ich persönlich auch ganz
gut so. Nur leider muss ich dieser abgeleiteten Klasse eine andere Regel
verpassen dürfen.

Habe ich irgendeine Möglichkeit das max=2 von A zu deaktivieren?
Back to top
Markus Malkusch
Guest





PostPosted: Fri Aug 10, 2012 11:24 am    Post subject: Re: [JSR 303] Constraints aufheben Reply with quote



Wir haben hier ein Spring Projekt, bei dem die Formulareingaben mit
Annotation Constraints validiert werden. Ich denke das benutzt
Hibernate
zum Validieren.

Ich habe hier nun eine abgeleitete Klasse bei der ich einen Constraint
aufheben will:

class A {

@Size(min = 1, max = 2)
public String getCountryCode() {
return countryCode;
}

}

class B extends A {

@Size(min = 1, max = 3)
@Override
public String getCountryCode() {
return super.getCountryCode();
}

}

Das funktioniert leider nicht wie gewünscht. Ich habe nun auch gelesen,
dass beim Überschreiben die Constraints aggregiert werden, also der
ursprüngliche max=2 erhalten bleibt. Das finde ich persönlich auch ganz
gut so. Nur leider muss ich dieser abgeleiteten Klasse eine andere
Regel
verpassen dürfen.

Habe ich irgendeine Möglichkeit das max=2 von A zu deaktivieren?
Back to top
Guest






PostPosted: Fri Aug 17, 2012 9:42 am    Post subject: Re: [JSR 303] Constraints aufheben Reply with quote



Markus Malkusch schrieb:
Quote:
Wir haben hier ein Spring Projekt,
bei dem die Formulareingaben mit
Annotation Constraints validiert werden.
Ich habe hier nun eine abgeleitete Klasse
bei der ich einen Constraint aufheben will:
class A {
@Size(min = 1, max = 2)
public String getCountryCode() {
return countryCode;
}
}

class B extends A {
@Size(min = 1, max = 3)
@Override public String getCountryCode() {
return super.getCountryCode();
}
}

Das funktioniert leider nicht wie gewünscht.

Dies wiederspricht übrigens auch dem
Liskovschen Substitutions-Prinzip.

Wenn ein Programmstück eine Instanz der Klasse B
als Instanz der Klasse A behandeln würde,
würde es sich darauf verlassen, dass

countryCode

das Constraint

@Size(min = 1, max = 2)

einhält.

Ursache dieses Problems ist, dass einerseits die
OOP-Polymorphie auf Verhalten und nicht auf
Daten-Strukturen ausgelegt ist.

Andererseits möchte man gern Daten-Strukturen
über Vererbung wiederverwenden.

Das gibt Java eben nicht her, man kann nicht sagen,
dies ist eine Datenstruktur ohne Verhalten.

Eine übliche saubere Lösung ist die Verwendung
von Komposition statt Vererbung.

Grüsse
Heiner
Back to top
Display posts from previous:   
Post new topic   Reply to topic    AppletTalk.com Forum Index -> Java Language (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.