1

JPA 2.0、Hibernate 4.1.0.Final、および Spring 3.1.1.RELEASE を使用しています。私は2つのエンティティを持っています:

@Entity
@Table(name = "user",
    uniqueConstraints = { @UniqueConstraint(columnNames = { "USER_NAME" }) }
)
public class User implements Comparable<User>, Serializable
{
    ...
    @Column(name = "first_name")
    @NotNull
    /* the first name of the User */
    private String firstName;

@Entity
@Table(name="code_user",
    uniqueConstraints = { 
        @UniqueConstraint(columnNames = { "SAMPLE_WORD_ID", "USER_ID" }) }
)
public class CodeUser 
{

    @Id
    @NotNull
    @GeneratedValue(generator = "uuid-strategy")
    @Column(name = "ID")
    private String id;

    @ManyToOne
    @JoinColumn(name = "CODE_ID", nullable = false, updatable = true)
    private Code code;

    @ManyToOne
    @JoinColumn(name = "USER_ID", nullable = false, updatable = true)
    private User user;

JPA/CriteriaBuilder クエリを作成して、名前が「Dave」と一致し、コードが「住居」であるコード レコードに関連付けられているすべてのユーザー オブジェクトを検索するにはどうすればよいですか?

4

1 に答える 1

1

HQL 構文要素を見逃した可能性があります

SELECT user FROM CodeUser codeUser 
    JOIN FETCH codeUser.user user
    JOIN FETCH codeUser.code code 
        WHERE user.firstName = 'Dave' AND code.value = 'abode'

値を保持Codeするフィールドがあると仮定します。は必要ないかもしれません。value"abode"FETCH

?リテラル値をプレースホルダー likeまたは名前付きプレースホルダーlike にいつでも置き換えて:name、オブジェクトからそれらの値を設定できQueryます。

于 2013-09-12T20:59:13.573 に答える