Abgeleitetes Interface public ohne Schlüsselwort "interface"?

Diskutiere Abgeleitetes Interface public ohne Schlüsselwort "interface"? im Allgemeine Java-Themen Bereich.
Bitte aktiviere JavaScript!
T

TM69

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/
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();
    }
...
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
Code:
public UserSpecifications {
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? o_O
 
M

mrBrown

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? o_O
Wie der Compiler korrekt anmeckert fehlt da was, in diesem Fall aber class :)
 
T

TM69

Code:
public class UserSpecifications {
    
    private UserSpecifications() {}
 
    static Specification<User> hasLastname(String lastname) {
        return (root, query, cb) -> {
            return cb.equal(root.get(User_.lastname), lastname);
        };
    }
}
Was mir auch angemerkelt wird ist das in der Zeile
Code:
return cb.equal(root.get(User_.lastname), lastname);
"User_" nicht definiert ist. Dieses ist mir an und für sich klar, aber wieso wird es im Tutorial so angegeben???? o_O
Hat jemand über org.springframework.data.jpa.domain.Specification ein einfaches Beispiel?
 
looparda

looparda

Ich kenne diesen Specification Kram nicht. Aber nach kurzer Recherche scheint die _ Notation auf das Metamodell zu verweisen, die in Verbindung mit der @StaticMetamodel Annoation benutzt wird. Hast du den Kram richtig in dein Build-Tool integriert, sodass etwaige Generatoren funktionieren können?
 
Thema: 

Abgeleitetes Interface public ohne Schlüsselwort "interface"?

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben