Java 如何在OpenXava中以列表模式筛选标记(/字符串的一部分)? 我想在列表模式下在OpenXava中过滤标记。
因此,我有一个名为标记的简单实体(带有Java 如何在OpenXava中以列表模式筛选标记(/字符串的一部分)? 我想在列表模式下在OpenXava中过滤标记。,java,tags,openxava,Java,Tags,Openxava,因此,我有一个名为标记的简单实体(带有int-id、字符串名称和字符串描述) 我有一个嵌入式实体详细信息,它保存标记引用,如下所示: 我的“main”实体称为Target,它表示一个对象,应该能够用标签标记 因此,我们有一个详细信息集合,将标记分配给目标,而目标不能以列表模式表示 @Tab(name="TargetTab", editors="List", properties="id, tags, manufacturer.name, ow
int-id、字符串名称和字符串描述
)
@Tab(name="TargetTab", editors="List", properties="id, tags, manufacturer.name, owner.name, protocolID, idCreationDate, simDBID, remark, changeDate, photo, xphoto")
@Entity
public class Target implements Serializable {
...
@ElemtentCollection
@ListProperties("tag.number, tag.name, tag.description")
@Embedded
Collection<Detail> details;
public Collection<Detail> getDetails() {
return details;
}
public void setDetails(Collection<Detail> details) {
this.details = details;
tags = details.toString().substring(1, details.toString().length() - 1);
}
...
这将在列表模式下创建一个cloumn“Tags”,它由一个字符串表示,如:“a,b,c,d”
对于列表模式下的过滤,OpenXava默认有一个输入框,您可以在其中键入类似“a,b”的字符串,以获取标记为“a”和“b”的所有条目
但如果我输入“a,c”,则不会显示任何结果,即使有标记为“a,b,c,d”的条目
我的目标/问题:
我想要一个灵活的过滤器,在其中我可以键入类似“a,c”的内容并获取所有包含标记“a”和“c”的条目
我尝试通过目标实体中带有
“baseCondition=“${tags}=?”
的“TagFilter.class”
来实现它,但没有可用的结果目标中的tags属性与细节集合的tag值没有关系。目标中的tags属性只是表中的一个新列
您必须选择以下选项:
谢谢,我尝试了你的解决方案,但我的问题不是,如何用值填充属性。实际上,我想在标记字符串的列表模式下编辑搜索筛选器的行为。目前我只能筛选整个/连接的字符串。如果标记是字符串,则属性应该能够按“包含”进行筛选,这确实是默认的比较或者。要自定义过滤参数,有一个名为IFilter的interfaz和一个名为filter的@Tab属性。
@Tab(name="TargetTab", editors="List", properties="id, tags, manufacturer.name, owner.name, protocolID, idCreationDate, simDBID, remark, changeDate, photo, xphoto")
@Entity
public class Target implements Serializable {
...
@ElemtentCollection
@ListProperties("tag.number, tag.name, tag.description")
@Embedded
Collection<Detail> details;
public Collection<Detail> getDetails() {
return details;
}
public void setDetails(Collection<Detail> details) {
this.details = details;
tags = details.toString().substring(1, details.toString().length() - 1);
}
...
...
@ReadOnly
String tags;
...