ARTICLE AD BOX
User entity:
@Builder @NoArgsConstructor @AllArgsConstructor @Accessors(chain = true) @Data @Entity(name = "users") // 4 Authentication and authorization public class CustomUser { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; // ... @OneToMany(mappedBy = "poster", cascade = CascadeType.ALL) private List<Listing> listings; @ManyToMany(mappedBy = "saves") private List<Listing> savedListings; public String getFullName() { return this.firstName + " " + this.lastName; } @Override public String toString() { return this.email.split("@")[0]; } }Listing entity:
@Builder @NoArgsConstructor @AllArgsConstructor @Accessors(chain = true) @Data @Entity(name = "listings") public class Listing { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; // ... @ManyToMany @Builder.Default @JoinTable(name = "listingSaves", joinColumns = @JoinColumn(name = "listingId"), inverseJoinColumns = @JoinColumn(name = "userId")) private List<CustomUser> saves = new ArrayList<>(); // ... }So User and Listing are in many-to-many relationship, which means that many users can save/bookmark/like many listings. I want to get all listing saved by an user with a repository query method. I have tried it this way, but I get Cannot resolve property 'userInSaves'.
// 1 Parametrized queries public interface ListingRepository extends JpaRepository<Listing, Long>, JpaSpecificationExecutor<Listing> { // ... Page<Listing> findByUserInSaves(CustomUser user, Pageable pageable); }