私を困惑させている次の問題があります。
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`
ビューを使用したときにのみこれが発生する理由はわかりませんが、代わりにテーブルを使用すると正しい結果を得ることができます。