Java 包含@ManyToOne关系的@Embeddeble类的JPA criteriaBuilder
这是我的实体,复合外键为PKJava 包含@ManyToOne关系的@Embeddeble类的JPA criteriaBuilder,java,jpa,metamodel,Java,Jpa,Metamodel,这是我的实体,复合外键为PK @Entity @Table(name = "privilege_per_role") public class PrivilegePerRole extends BaseEntity implements Serializable { @EmbeddedId PrivilegePerRoleKey privilegePerRoleKey; @Embeddable public static
@Entity
@Table(name = "privilege_per_role")
public class PrivilegePerRole extends BaseEntity implements Serializable {
@EmbeddedId
PrivilegePerRoleKey privilegePerRoleKey;
@Embeddable
public static class PrivilegePerRoleKey implements Serializable {
/**
* Default Constructor
*/
public PrivilegePerRoleKey() {
// TODO Auto-generated constructor stub
}
/**
* Generated serial UID
*/
private static final long serialVersionUID = 3511215419L;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "privilege_name", referencedColumnName = "privilege_name", nullable = true, insertable = false, updatable = false)
@JsonBackReference("thePrivilege")
private Privilege thePrivilege;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "role_name", referencedColumnName = "role_name", nullable = true, insertable = false, updatable = false)
@JsonBackReference("theRole")
private Role theRole;
}
}
一切正常,mvn generate source生成以下元模型:
@Generated(value = "org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor")
@StaticMetamodel(PrivilegePerRole.class)
public abstract class PrivilegePerRole_ {
public static volatile SingularAttribute<PrivilegePerRole, PrivilegePerRoleKey> privilegePerRoleKey;
public static final String PRIVILEGE_PER_ROLE_KEY = "privilegePerRoleKey";
}
但我不知道如何使用嵌入式类获得相同的结果
(root, query, cBuilder) -> cBuilder.equal(root.get(PrivilegePerRole_.privilege).get(Privilege_.name), "pippo")