【问题标题】:Spring data jpa not selecting all recordsSpring data jpa没有选择所有记录
【发布时间】:2018-12-13 07:49:56
【问题描述】:

我是 Hibernate 的初学者,我不想弄清楚一些机制。 我有实体:

@Entity
@Table(name = "dish")
public class Dish implements Serializable {

   @ManyToMany(fetch = FetchType.LAZY)
   private List<Ingredient> ingredients;

   @ManyToOne(fetch = FetchType.LAZY)
   private Category category;
}

以及使用这种方法的存储库:

@Query("select d from Dish d join fetch d.ingredients")
    Set<Dish> getDishesWithIngredientsAndCategory();

我注意到,我通过这种方法检索具有相关成分的菜肴。我不知道如何获得所有菜肴,即使没有配料? 而第二个问题是:是否可以在一个@Query 中合并获取两列?比如:

@Query("select d from Dish d join fetch d.ingredients, d.category")

我尝试使用此类查询,但收到 QuerySelectionException:“d.category is not mapped”。

【问题讨论】:

    标签: java hibernate jpa spring-data-jpa hql


    【解决方案1】:

    我通过这种方法只检索具有关联的菜肴 成分。

    使用Left Join 代替加入:@Query("select d from Dish d left join fetch d.ingredients")

    第二个问题是:是否可以在一个 @Query 提取中合并 两列? 你可以试试这个:

    @Query("select d from Dish d join fetch d.ingredients join fetch d.category")

    【讨论】:

      猜你喜欢
      • 2018-11-06
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 2019-02-09
      • 2020-10-13
      • 2014-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多