Поле карты из другой таблицы JPA (Spring boot) - PullRequest
0 голосов
/ 13 февраля 2020

Сущность 1

@Data
@Entity
public class Company  implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int companyId;
    private String name;


    @Transient
    private int haveFavoriteUser;

}

Сущность 2

@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {

    @Id
    private String userId;



}

Сущность 3

@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
public class Favorite implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int favoriteId;

    @ManyToOne
    @JoinColumn(name = "userId")
    private User user;

    @ManyToOne
    @JoinColumn(name = "companyId")
    private Company company;
}

Хранилище:

@Repository
public interface CompanyRepository extends JpaRepository<Company, Long> {

    @Query(value = "SELECT CE.*, IF(F.companyId = CE.companyId, 1, 0) as haveFavoriteUser FROM Company CE " + //
            "LEFT JOIN Favorite F ON CE.companyId = F.companyId " + //
            "WHERE F.userId = :user ORDER BY CE.name", //
            nativeQuery = true)
    List<Company> findAllFavorite(@Param("user") String user);
}

Я хочу, в моем jpa репозитории отображается значение "haveFavoriteUser", с загрузкой из другой сущности (любимой). Как я могу это сделать?

Я не хочу объединять избранное внутри компании, потому что мне нужно только одно поле.

Большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...