我尝试在视图xml中使用$ expand参数,但是combobox不显示数据
<Text text="ID_PLANNING"/>
<ComboBox items="{path :'/T027_03s', parameters:{expand : 'T027Details'}}">
<core:Item text="{T027Details/BEG_DATETIME}"/>
</ComboBox>
从T027_03s表中$ expand T027Details时,链接.... / T027_03s?$ expand = T027Details
这是T027_03表的元数据,其导航属性为:T027Details
这是我在Java中创建实体的代码
@实体 公共类T027_03实现了可序列化的{
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_T027_03")
private Long ID_PERSONNEL_PLANNING;
private Integer ID_PERSONNEL;
private Long ID_PLANNING;
private static final long serialVersionUID = 1L;
[...]
@ManyToOne
@PrimaryKeyJoinColumn(name="ID_PLANNING")
private T027 T027;
public T027 getT027() {
return this.T027;
}
public void setT027(T027 T027) {
this.T027 = T027;
}
[...]
}
在T027类中
@实体 公共类T027实现可序列化{
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_T027")
private Long ID_PLANNING;
private Timestamp BEG_DATETIME;
[...]
private static final long serialVersionUID = 1L;
@OneToMany(mappedBy="T027")
private List<T027_03> T027_03S;
public List<T027_03> getT027_03S() {
return this.T027_03S;
}
public void setT027_03S(List<T027_03> T027_03S) {
this.T027_03S = T027_03S;
}
我见过同样的问题OData Model Not Working,但我不知道如何解决。他们的回应是添加“ RESULT”。但是我如何添加'RESULT'?
答案 0 :(得分:1)
尝试在组合框项目键和文本中添加父实体名称
<core:Item key="{T027_03s/T027Details/ID_PLANNING}" text="{T027_03s/T027Details/ID_PLANNING}"/>
答案 1 :(得分:1)
您应在“项目”聚合中绑定多重性大于1的节点。扩展只会在您的请求中检索更多数据。但是仍然只有1个项目。
要解决此问题,请对节点“ T027_03s”执行elementBinding,然后对“ T027Details”进行aggregationBinding,如下所示:
<ComboBox binding="{path:'/T027_03s', parameters:'expand:T027Details'}" items="{T027Details}">
<core:Item text="{ID_PLANNING}" key="{ID_PLANNING}"></core:Item>
</ComboBox>
答案 2 :(得分:1)
好像您正在尝试访问 "{% url 'projects' projectid=project.id stepno=step.step_no %}"
实体类型的属性(ID_PLANNING
)。
如果您将T027_03s
项绑定为以下形式:
ComboBox
您应该看到<ComboBox items="{path :'/T027_03s', parameters:{expand : 'T027Details'}}">
<core:Item key="{ID_PLANNING}" text="{ID_PLANNING}"/>
</ComboBox>
实体集的结果
但是...
如果您希望在T027_03s
上显示属性,则只要您要绑定T027Details
实体类型的有效属性,绑定语法就应该可以使用。
换句话说,如果您想显示一个有效的属性T027Details
,它是T027_03s中每个条目的DETAIL_PROPERTY
实体集合的一部分,您可以这样做:
T027Details
答案 3 :(得分:1)
我的解决方案已被解决。我已将 @Cache(isolation = CacheIsolationType.ISOLATED) 添加到T027表
import org.eclipse.persistence.annotations.Cache;
import org.eclipse.persistence.config.CacheIsolationType;
@Id
@Cache(isolation=CacheIsolationType.ISOLATED)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_T027")
private Long ID_PLANNING;
private Timestamp BEG_DATETIME;
[...]
private static final long serialVersionUID = 1L;
@OneToMany(mappedBy="T027",cascade =CascadeType.ALL, fetch = FetchType.EAGER)
private List<T027_03> T027_03S;
Here是我找到的解决方案
致谢。