小编Gaz*_*arz的帖子

JPA Criteria 带有 fetch 的多选

我有以下型号:

@Entity
@Table(name = "SAMPLE_TABLE")
@Audited
public class SampleModel implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID")
    private Long id;

    @Column(name = "NAME", nullable = false)
    @NotEmpty
    private String name;

    @Column(name = "SHORT_NAME", nullable = true)
    private String shortName;

    @ManyToOne(fetch = FetchType.LAZY, optional = true)
    @JoinColumn(name = "MENTOR_ID")
    private User mentor;

//other fields here

//omitted getters/setters

}
Run Code Online (Sandbox Code Playgroud)

现在我只想查询列:idnameshortNamementor引用User实体(不是完整的实体,因为它有许多其他属性,我希望获得最佳性能)。

当我写查询时:

CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<SampleModel> query = builder.createQuery(SampleModel.class);
Root<SampleModel> …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa criteria-api

10
推荐指数
1
解决办法
2万
查看次数

交叉两个不同对象类型的集合java 8

我有两个对象列表:

List<SampleClassOne> listOne;
List<SampleClassTwo> listTwo;
Run Code Online (Sandbox Code Playgroud)

SampleClassOne:

public class SampleClassOne{
  private String myFirstProperty;
  //ommiting getters-setters
}
Run Code Online (Sandbox Code Playgroud)

SampleClassTwo:

public class SampleClassTwo{
  private String myOtherProperty;
  //ommiting getters-setters
}
Run Code Online (Sandbox Code Playgroud)

RootSampleClass:

public class RootSampleClass{
  private SampleClassOne classOne;
  private SampleClassTwo classTwo;
  //ommiting getters-setters
}
Run Code Online (Sandbox Code Playgroud)

现在我想根据条件将两个列表合并到RootSampleClass类型的新列表中:

if(classOneObject.getMyFirstProperty().equals(classTwoObject.getMyOtherProperty()){
 //create new RootSampleClass based on classOneObject and classTwoObject and add it to another collection
}
Run Code Online (Sandbox Code Playgroud)

伪代码:

foreach(one: collectionOne){
 foreach(two: collectionTwo){
    if(one.getMyFirstProperty().equals(two.getMyOtherProperty()){
    collectionThree.add(new RootSampleClass(one, two));
    }
 }
}
Run Code Online (Sandbox Code Playgroud)

我对java 8感兴趣.我想在这里有最好的表现,这就是为什么我要求现有的解决方案而不编写自定义foreach.

java collections lambda java-8 java-stream

4
推荐指数
1
解决办法
6127
查看次数

标签 统计

java ×2

collections ×1

criteria-api ×1

hibernate ×1

java-8 ×1

java-stream ×1

jpa ×1

lambda ×1