如果有人能告诉我如何使用来自 org.jboss.seam.framework的 setRestrictions 方法属于 EntityQuery 对象,那将是很好的。 EntityQuery 包。
我试图以这种方式使用它:
...
import org.jboss.seam.framework.EntityQuery;
import org.jboss.seam.core.Expressions.ValueExpression;
public class LetterList extends EntityQuery<Letter>
{
public LetterList()
{
setEjbql("select letter from Letter letter");
}
public void sampleMethod(){
List<ValueExpression> restrictions = new ArrayList<ValueExpression>();
restrictions.add(createValueExpression("letter.id=7"));
setRestrictions(restrictions);
}
}
然而,这段代码抛出异常。
以下行也会导致错误:
String[] RESTRICTIONS = {"letter.id=7"};
setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS));
如果可以在使用 setEjbql 时以漂亮的方式传递任何参数,这也很有趣。我的意思是是否可以避免连接。
我真的试图找到一些相关代码的例子,但是徒劳无功。所以,我非常感谢几行代码。
答案 0 :(得分:0)
尝试以下示例:
@Name("letterList") // (1)
public class LetterList extends EntityQuery<Letter> {
private Long letterId;
public LetterList() {
setEjbql("select letter from Letter letter");
setRestrictionExpressionStrings(Arrays.asList(new String[] {
"letter.id = #{letterList.letterId}" // (2)
}));
}
public Long getLetterId() { // (3)
return letterId;
}
public void setLetterId(Long letterId) {
this.letterId = letterId;
}
}
请注意三个评论位置:
@Name
注释将您的类声明为接缝组件。