gmentertainment
New Member
- Joined
- Dec 30, 2017
- Messages
- 249
- Reaction score
- 0
Last Updated 04-05-2018 at 18:46
Giả sử mình có 1 entity là Student và 1 StudentDTO như trên, giả sử mình muốn validate field Name sao cho size > 8 thì phải làm sao, đa phần amateur sẽ annotate 1 trong 2 chỗ, hoặc cả 2 để annotate như vầy:
Điều này gây ra một số vấn đề
+ Dư thừa
+ Gây ra trình trạng không thống nhất
Hướng giải quyết rất đơn giản, cho annotation vào interface như vầy:
Giả sử mình có 1 entity là Student và 1 StudentDTO như trên, giả sử mình muốn validate field Name sao cho size > 8 thì phải làm sao, đa phần amateur sẽ annotate 1 trong 2 chỗ, hoặc cả 2 để annotate như vầy:
Điều này gây ra một số vấn đề
+ Dư thừa
+ Gây ra trình trạng không thống nhất nếu không khéo
Hướng giải quyết rất đơn giản, cho annotation vào interface như vầy:
Code:
@Entity
@Data
class Student{
public String name;
public int age;
}
@Data
class StudentDTO{
public String name;
}
Code:
@Entity
@Data
class Student{
[COLOR="Orange"][B]@Size(min = 8)[/B][/COLOR]
public String name;
public int age;
}
@Data
class StudentDTO{
[COLOR="Orange"][B]@Size(min = 8)[/B][/COLOR]
public String name;
}
+ Dư thừa
+ Gây ra trình trạng không thống nhất
Hướng giải quyết rất đơn giản, cho annotation vào interface như vầy:
Code:
interface hasName {
@Size(min=8)
String getName();
}
@Entity
@Data
class Student implements hasName {
@Getter @Setter
public String name;
public int age;
}
@Data
class StudentDTO implements hasName{
@Getter @Setter
public String name;
}
Code:
@Entity
class Student{
@Getter @Setter
public String name;
public int age;
}
@Data
class StudentDTO{
@Getter @Setter
public String name;
}
Code:
@Entity
class Student{
@Getter @Setter
[COLOR="Orange"][B]@Size(min = 8)[/B][/COLOR]
public String name;
public int age;
}
@Data
class StudentDTO{
@Getter @Setter
[COLOR="Orange"][B]@Size(min = 8)[/B][/COLOR]
public String name;
}
+ Dư thừa
+ Gây ra trình trạng không thống nhất nếu không khéo
Hướng giải quyết rất đơn giản, cho annotation vào interface như vầy:
Code:
interface hasName {
@Size(min=8)
String getName();
}
@Entity
class Student implements hasName {
@Getter @Setter
public String name;
public int age;
}
@Data
class StudentDTO implements hasName{
@Getter @Setter
public String name;
}