具有内部联接且多对多的休眠条件Api

我是Hibernate和Criteria Query的新手。 如何使用休眠条件对象实现它?

SELECT stateslocalization.StateId,stateslocalization.localization AS name
FROM processstate
Join states ON  states.id = processstate.StateId
JOIN stateslocalization ON stateslocalization.StateId = states.id
WHERE processstate.ProcessId = 38 and processstate.StateId = states.id AND stateslocalization.StateId = states.id

实体:

过程:

@Entity
@Table(name = "processes")
public class Process {

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

    private String name;

    @ManyToMany(fetch = FetchType.EAGER,cascade = CascadeType.PERSIST)
    @JoinTable(
        name = "processstate",joinColumns = {@JoinColumn(name = "ProcessId")},inverseJoinColumns = {@JoinColumn(name = "StateId")}
    )
    private Set<State> states;

    //getters and setters.....
}

状态:

@Entity
@Table(name = "states") 
public class State {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    private int id;

    private String name;

    @ManyToMany(mappedBy = "states",cascade = CascadeType.PERSIST,fetch = FetchType.EAGER)
    private Set<Process> processes;

    @OneToOne(mappedBy = "state")
    private StateLocalization stateLocalization;

    //getters and setters.....
}

StateLocalization:

@Entity
@Table(name = "stateslocalization")
public class StateLocalization {

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

    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "StateId",referencedColumnName = "id")
    private State state;

    private String localization;

    //getters and setters.....
}

我是用本机查询完成的,但是我不知道如何将其实现到Hibernate Criteria,因为我没有实体processstate(它只是表)。

xxxcs001 回答:具有内部联接且多对多的休眠条件Api

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3085054.html

大家都在问