嗨,伙计们,我正在尝试开发一个 Single Java 类,它可以作为 org.hibernate.Criteria 之类的包装器,以一种优雅的方式摆脱一堆 add(Restrictions) 。到目前为止,我得到的是一个遗留系统。
public static void prepareForSelect(Criteria crit) {
crit.add(Restrictions.eq("cid","1"));
crit.add(Restrictions.eq("did","2");
crit.add(Restrictions.eq("fdl","3")); //omit for brevity
}
是的非常不合适我知道我正在尝试实现一个扩展 org.hibernate.internal.CriteriaImpl 并具有我需要限制并且我想要的属性的 java 类。这个类有这样的方法。
public org.hibernate.Criteria addStandartsRestrictions(){
return this.add(Restrictions.eq("cid",getCid())).add(Restrictions.eq("did",getDid())).add(Restrictions.eq("fdl",getFdl()));
}
在我的java代码中这样称呼它:
org.hibernate.Criteria myOwnCriteria = ((FullCriteria)Session.getSession().createCriteria(MyJava.class)).addStandartsRestrictions();
但我收到以下异常
Exception in thread "main" java.lang.ClassCastException: org.hibernate.internal.CriteriaImpl cannot be cast to org.com.utilities.classes.FullCriteria
at javaapplication8.JavaApplication8.main(JavaApplication8.java:12)
也许是不可能的事情,我不知道请大家指导我。
我的错误实现。
public class FullCriteria extends org.hibernate.internal.CriteriaImpl
{}