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? 😵