Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jsf&;hibernate集成-数据库中的选取列表值_Java_Hibernate_Jsf_Primefaces - Fatal编程技术网

Java jsf&;hibernate集成-数据库中的选取列表值

Java jsf&;hibernate集成-数据库中的选取列表值,java,hibernate,jsf,primefaces,Java,Hibernate,Jsf,Primefaces,我不熟悉hibernate和jsf技术,我正在尝试从数据库中获取和更新(如果用户更改其值)值的选择列表 我的数据库架构如下所示: 我有两个表(实体)CRImageType(ImTypeId(PK)、ImTypeName、ImTypeDescription)和CRVariable(VarId(PK)、VarName、VarDescription),它们通过在Hibernate数据模型中实现的表“imtype_variable”具有多对多关系 这个模型似乎运作良好。我还能够使用jsf元素(带有插入、

我不熟悉hibernate和jsf技术,我正在尝试从数据库中获取和更新(如果用户更改其值)值的选择列表

我的数据库架构如下所示:

我有两个表(实体)CRImageType(ImTypeId(PK)、ImTypeName、ImTypeDescription)和CRVariable(VarId(PK)、VarName、VarDescription),它们通过在Hibernate数据模型中实现的表“imtype_variable”具有多对多关系

这个模型似乎运作良好。我还能够使用jsf元素(带有插入、编辑和删除按钮的数据表+相应的对话框+bean类)来读取和写入表CRVariable&CRImageType

我还希望有一个选择列表,以便能够将CRImageType与CRVariable记录关联起来。我的业务场景是能够将图像类型与一个或多个变量(医学术语)重新关联,因此我使用jsf选择列表:

<p:dialog id="dialog-associatevariables" header="Associate Variables" widgetVar="dlg7"     dynamic="true" showEffect="fade">
<h:panelGrid id="associateVariables" columns="1" cellpadding="4">
<p:pickList id="pickList" 
                value="#{reportConfiguratorBean.getAssocImTypVariables(reportConfiguratorBean.selectedCRImageType.imTypeId)}"
                var="cRVariable" 
                itemValue="#{cRVariable}" 
                itemLabel="#{cRVariable.varName}">
    <f:facet name="sourceCaption">Available Variables</f:facet>
        <f:facet name="targetCaption">Associated Variables</f:facet>
</p:pickList>
</h:panelGrid>  
</p:dialog>
问题是**当我调用picklist对话框时,picklist列没有正确填充

经过一些调试/研究后,我认为这与我调用picklist方法“reportConfiguratorBean.getAssocImTypVariables(…)”的方式有关

如果我使用“reportConfiguratorBean.selectedCRImageType.imTypeId”作为方法参数,它将在backbean中作为零值传递

如果我硬编码一个整数作为参数,例如25,则选取列表填充正确,但在控制台中我可以看到以下异常:

ERROR class java.lang.IllegalArgumentException: can't parse argument number reportConfiguratorBean.getAssocImTypVariables(25): javax.el.PropertyNotWritableException: /views/report-configurator.xhtml @271,10 value="#{reportConfiguratorBean.getAssocImTypVariables(25)}": Illegal Syntax for Set Operation

有没有关于我遗漏了什么的想法?

经过一些研究和调试,我的选择列表组件似乎无法接受(value=“{reportConfiguratorBean.getAssocImTypVariables(reportConfiguratorBean.selectedCRImageType.imTypeId)}”)一个需要传递参数的方法。。。我重新实现了“”方法(我的后bean现在是会话范围):

公共DualListModel getAssocImTypVariables(){ Long imTypeId=Long.parseLong(虚拟化); ... 我的选择名单已经填好了


其中virtualId是一个全局字符串变量,填充了selectedItem Id…

问题出现在我的.xhtml文件中。当1)我尝试在它前面打印“#{reportConfiguratorBean.selectedCRImageType.imTypeName}”时,Picklist组件工作不正常。2)当我尝试在backbean方法中传递图像类型Id时#{reportConfiguratorBean.getAssocImTypVariables(reportConfiguratorBean.selectedCRImageType.imTypeId)},“…如果调用与“#{reportConfiguratorBean.getAssocImTypVariables(25)}”相同的方法,则效果很好!
Associated ImageType with Id: 26
...
Associated Variables with Id: [varId : 75, varName : Ki67(X), varDescription : Ki67(X)]
Non Associated Variables with Id: [varId : 71, varName : ER (X), varDescription : ER (X), varId : 72, varName : HER2(X), varDescription : HER2(X), varId : 73, varName : IHC, varDescription : IHC, varId : 74, varName : FISH, varDescription : FISH, varId : 76, varName : PTEN(X), varDescription : PTEN(X), varId : 77, varName : Histology (X), varDescription : Histology (X)]
...
Non Associated Variables with Id: [varId : 71, varName : ER (X), varDescription : ER (X), varId : 72, varName : HER2(X), varDescription : HER2(X), varId : 73, varName : IHC, varDescription : IHC, varId : 74, varName : FISH, varDescription : FISH, varId : 75, varName : Ki67(X), varDescription : Ki67(X), varId : 76, varName : PTEN(X), varDescription : PTEN(X), varId : 77, varName : Histology (X), varDescription : Histology (X)]
...
ERROR class java.lang.IllegalArgumentException: can't parse argument number reportConfiguratorBean.getAssocImTypVariables(25): javax.el.PropertyNotWritableException: /views/report-configurator.xhtml @271,10 value="#{reportConfiguratorBean.getAssocImTypVariables(25)}": Illegal Syntax for Set Operation
public DualListModel<CRVariable> getAssocImTypVariables() {
    Long imTypeId = Long.parseLong(virtualId);
...