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 方法返回的行只包含一条记录的详细信息,在视图中的记录数上重复。

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

4) 这些是在 jsf 页面中使用此外观 bean 后的结果...直接 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