Java

Exclude one element from Lombok model-wide setter and getter

Lets say you have a User model with Lombok modelwide @Getter and @Setter:

@Getter
@Setter
public class User {

    @Id
    private String id;

    private String username;

    private String email;

    private String password;
}

setId(String id) makes no sense.
Normally the id is set by the DB, so it makes no sense to set it.

So you can use @Setter(AccessLevel.NONE) (or @Getter(AccessLevel.NONE)) to exclude it from the Lombok setters (or getters)

@Getter
@Setter
public class User {

    @Id
    @Setter(AccessLevel.NONE)
    private String id;

    private String username;

    private String email;

    private String password;
}

(I found this answer on Stackoverflow by user Michael Piefel for this problem, thanks!

Using MongoRepository with more than one sorting with Spring Boot

Sometimes you need a List of the Database to be sorted by more than one column.

If you connect to your database with the org.springframework.data.mongodb.repository.MongoRepository you can only give one org.springframework.data.domain.Sort to a search method.

This is how the Repository class looks like:

@Repository
public interface TestRepository extends MongoRepository<Test, Long> {
  public List<Score> findAllByTestName(String testName, Sort sort );
}

test has some column “abc” and some column “def” and some “ghi” …. so to add the order do in th calling class something like: