如何在JPA条件api查询中按对象值获取实体

时间:2018-02-12 16:37:09

标签: jpa collections criteria-api

我正在使用带有延迟加载的JSF数据表的JPA。 这里有一辆车可以被许多用户拥有。因此,当我登录到应用程序时,我希望用户拥有的汽车登录(假设它为userId = 1)。 我有一个映射表“Cars_User”,其中包含carId和userId列。 我的实体是这样的 我的车类

@Entity
@Table(name="car")
public class Car implements Serializable {
 private static final long serialVersionUID = 1L;

 @Id
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 private String id;

 @Transient
 private boolean myCar;

 @NotNull
 @Size(min = 1, max = 50)
 public String name;

 @OneToMany(cascade = { CascadeType.REFRESH }, fetch = FetchType.LAZY, orphanRemoval = true)
 @JoinTable(name = "Cars_User", joinColumns = @JoinColumn(name = "carId"), inverseJoinColumns = @JoinColumn(name = "userId"))
 private List<User> carUsers = new ArrayList<User>();

 getters ...

 setters ...
}

用户类

@Entity(name = "User")
public class User implements Serializable {

   private static final long serialVersionUID = 1L;

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

   private String firstName;

   private String lastName;
}

我在link找到了一个关于字符串集合的答案,但在我的案例中如何实现。 我想在carUsers列表中使用包含登录用户ID“userId”的条件api获取所有Cars实体。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我已经在isMember函数中传递了登录用户Object“user”。这可能对某人有所帮助。

<input type=file ...>