Вы можете использовать аннотацию @JsonIgnore
, чтобы игнорировать отображение поля. Затем вы должны сделать это:
@JsonIgnore
@OneToMany(fetch = FetchType.LAZY, mappedBy = "restaurant")
private Set<Meal> meals = Collections.emptySet();
ОБНОВЛЕНО
На основе того, что вы хотите сделать " Динамически игнорировать поле при получении одного или не получения всех"вы можете использовать @NamedEntityGraphs
аннотацию, чтобы указать c, к каким полям вы хотите присоединиться, затем, используя @NamedEntityGraph
, вы указываете путь и границы для операции поиска или запроса, и вы должны использовать в своем пользовательском Repository
@EntityGraph
аннотация, позволяющая настроить fetch-graph
на основе того, что вы хотите сделать.
Поэтому вы должны добавить следующий код:
@Entity
@Table(name = "restaurants")
@NamedEntityGraphs({
@NamedEntityGraph(name="Restaurant.allJoins", includeAllAttributes = true),
@NamedEntityGraph(name="Restaurant.noJoins")
})
public class Restaurant extends AbstractNamedEntity implements Serializable {
}
@Repository
public interface RestaurantRepository extends CrudRepository<Restaurant, Integer> {
@EntityGraph(value = "Restaurant.allJoins", type = EntityGraphType.FETCH)
@Override
List<Restaurant> findAll();
@EntityGraph(value = "Restaurant.noJoins", type = EntityGraphType.FETCH)
@Override
Optional<Restaurant> findById(Integer id);
}