字段或构造函数或两者上的Hibernate验证批注?

时间:2018-11-06 16:50:31

标签: java hibernate bean-validation

最好只在字段上使用验证注释,以免造成混乱,例如

#include <iostream>
#include <cmath>
#include <math.h>
#include <cstdio>

using namespace std;

double SSS_alpha(double a, double b, double c){

    int bot1 = -2*b*c;
    if(bot1==0.0){
        return 0.0;
    }

    double alpha = acos((a*a-b*b-c*c)/bot1);
    const double rad = 0.5729577951308232088;
    return alpha*rad;

}

double SSS_beta(double a, double b, double c){

    double bot2 = -2*c*a;
    if(bot2==0.0){
        return 0.0;
    }

    double beta = acos((b*b-c*c-a*a)/bot2);
    const double rad = 0.5729577951308232088;
    return beta*rad;
}

double SSS_gamma(double a, double b, double c){

    double bot3 = -2*b*a;
    if(bot3==0.0){
        return 0.0;
    }

    double gamma = acos((c*c-a*a-b*b)/bot3);
    const double rad = 0.5729577951308232088;
    return gamma*rad;
}


double WSW_seite_c(double a, double b, double gamma){
    double c_1 = (a*a+b*b-2*a*b*cos(gamma));
    double c = sqrt(c_1);
    return c;

}



int main(){
    cout << SSS_alpha(5.0, 7.0, 8.0)<<endl;
    cout <<SSS_beta(5.0, 7.0, 8.0)<<endl;
    cout <<SSS_gamma(5,7,8)<<endl;
    cout <<"Seite c: "<<WSW_seite_c(5, 7, 0.81)<<endl;

}

或者在构造函数上也包含验证注释会更好:

public class Foo {

    @NotNull
    private Bar bar;

    @NotNull
    private Baz baz;

    public Foo(Bar bar, Baz baz) {
        // ...
    }
}

当我实际运行它时似乎没有什么区别。

1 个答案:

答案 0 :(得分:0)

仅在字段中,我还看到一些人将它们放入getter方法中。 在示例中,我从未在构造函数中看到注解。

http://www.techferry.com/articles/hibernate-jpa-annotations.html https://docs.jboss.org/hibernate/stable/annotations/reference/en/pdf/