1

私を困惑させている次の問題があります。

1) 関連するさまざまなテーブルから情報を取得する MySQL ビューがあります。これに対して単純な選択クエリを実行すると、必要なすべての行が取得されます。

userID          functionID      functionName    parentFunction  functionType    branchCode  
jg1             234561          Another Test    XXXXXX          T               001 
jg1             123456          Test Function   XXXXXX          T               001 
jg1             123457          Tendai          234561          T               001 
jg1             123458          Rutendo         234561          T               001 
jg1             XXXXXX          Root                                            001 

2) 次のように、このビューに基づいてエンティティを作成しました。

private static final long serialVersionUID = 1L;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 35)
@Column(name = "userID")
@Id
private String userID;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 8)
@Column(name = "functionID")
private String functionID;
@Size(max = 35)
@Column(name = "functionName")
private String functionName;
@Size(max = 8)
@Column(name = "parentFunction")
private String parentFunction;
@Column(name = "functionType")
private Character functionType;
@Size(max = 3)
@Column(name = "branchCode")
private String branchCode;

....
....
public String getUserID() {
    return userID;
}

public void setUserID(String userID) {
    this.userID = userID;
}

public String getFunctionID() {
    return functionID;
}

public void setFunctionID(String functionID) {
    this.functionID = functionID;
}

public String getFunctionName() {
    return functionName;
}

public void setFunctionName(String functionName) {
    this.functionName = functionName;
}

public String getParentFunction() {
    return parentFunction;
}

public void setParentFunction(String parentFunction) {
    this.parentFunction = parentFunction;
}

public Character getFunctionType() {
    return functionType;
}

public void setFunctionType(Character functionType) {
    this.functionType = functionType;
}

public String getBranchCode() {
    return branchCode;
}

public void setBranchCode(String branchCode) {
    this.branchCode = branchCode;
}

…………

3) テーブル内のすべての行を検索するメソッドを使用して作成されたファサード Bean もあります。私の問題は、find メソッドによって返される行には、ビュー内のレコードの数だけ繰り返される 1 つのレコードの詳細が含まれていることです。

List browserDetails = new ArrayList(40);
Query query = em.createNamedQuery("...findAll");
List rs = query.getResultList();

4) これらは、このファサード Bean を jsf ページで使用した後の結果です...単純な Netbeans ウィザードの作業

UserID  FunctionID  FunctionName    ParentFunction  FunctionType    BranchCode   
jg1     234561       Another Test   XXXXXX  T   001     View Edit Destroy
jg1     234561       Another Test   XXXXXX  T   001     View Edit Destroy
jg1     234561       Another Test   XXXXXX  T   001     View Edit Destroy
jg1     234561       Another Test   XXXXXX  T   001     View Edit Destroy
jg1     234561       Another Test   XXXXXX  T   001     View Edit Destroy`

ビューを使用したときにのみこれが発生する理由はわかりませんが、代わりにテーブルを使用すると正しい結果を得ることができます。

4

0 に答える 0