RoleGroupEntityテーブルで特定のロールを割り当てたGroupEntityオブジェクトを取得する必要があります。名前付きクエリjoin select
私はそのようにこれを実行しよう:
@NamedQuery(name = "GroupEntity.getGIDs", query = "SELECT o FROM RoleGroupEntity u JOIN FETCH u.GroupId o WHERE u.role_id LIKE :role_id")
が、私が得た:
org.hibernate.QueryException: could not resolve property: role_id of: RoleGroupEntity
Entitesサンプル:
@Entity
@Table(name = "group")
public class GroupEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "gid_number")
private Long gid_number;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "GroupId")
private List<RoleGroupEntity> GroupId;
RoleGroupEntityが複合キーを持っています
@Entity
@Table(name = "role_group")
public class RoleGroupEntity implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private RoleGroupCompositeKey posRGKey;
@MapsId("role_id")
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "role_id")
private RoleEntity roles;
@MapsId("group_id")
@ManyToOne
@JoinColumn(name = "group_id")
private GroupEntity GroupId;
選択クエリを機能させる方法をご存知ですか?あなたが使用する必要がjoincolumn使用することはできません
をメッセージが言うようにRoleGroupEntityにはプロパティ「ROLE_ID」はありません。 JPQLでは、フィールド名/プロパティ名ではなく列名を使用します。 JPQL!= SQL –