Ich beschäftige mich gerade mit Specification. Hierzu habe ich mir das Tutorial https://dzone.com/articles/using-spring-data-jpa-specification angesehen.
In Anlehnung an meine Test Klasse: https://www.java-forum.org/thema/email.187153/
wollte ich mir eine Specification test erstellen. Meine Specification ist in "UserSpecifications" beschrieben. "CustomerSpecifications" rührt noch von dem Artikel her.
Was mich jetzt etwas verwundert ist - und dieses merkelt (bewusst so geschrieben) beim Compilieren an - dass
falsch ist.
Compiler meldet: Syntax error on token "public", interface aspected after this token
Fehlt dort nicht ein interface oder class? Ist dieses so korrekt geschrieben, wie im Tutorial angeben?
In Anlehnung an meine Test Klasse: https://www.java-forum.org/thema/email.187153/
Code:
public CustomerSpecifications {
public static Specification<Customer> customerHasBirthday() {
return (root, query, cb) ->{
return cb.equal(root.get(Customer_.birthday), today);
};
}
public static Specification<Customer> isLongTermCustomer() {
return (root, query, cb) ->{
return cb.lessThan(root.get(Customer_.createdAt), new LocalDate.minusYears(2));
};
}
}
public UserSpecifications {
private UserSpecifications() {}
static Specification<User> hasLastname(String lastname) {
return (root, query, cb) -> {
return cb.equal(root.get(User_.lastname), lastname);
};
}
}
@SpringBootTest
class UserServiceTest {
@Autowired
UserService userService;
@Autowired
UserRepository userRepository;
@AfterEach
public void cleanUpEach(){
userRepository.deleteAll();
}
...
Was mich jetzt etwas verwundert ist - und dieses merkelt (bewusst so geschrieben) beim Compilieren an - dass
Code:
public UserSpecifications {
Compiler meldet: Syntax error on token "public", interface aspected after this token
Fehlt dort nicht ein interface oder class? Ist dieses so korrekt geschrieben, wie im Tutorial angeben?