我有以下实体类:
@Entity
@FilterDef (name = "byLastName", parameters = @Parameter (name = "lastName", type="string"))
@Filters ({
@Filter (name = "byLastName", condition = "lastName = :lastName")
})
public class User {
String firstName;
String lastName;
}Run Code Online (Sandbox Code Playgroud)
在我的DAO中,我这样做:
public User findById (Long id)
{
Session s = (Session) em.getDelegate ( );
s.enableFilter ("byLastName").setParameter ("lastName", "smith");
User u = em.find (User.class, id);
return (u);
}Run Code Online (Sandbox Code Playgroud)
现在,如果我正确理解了这一点,那么应该应用过滤器,如果lastName不等于"smith",我尝试检索的任何用户都应该返回null.问题是过滤器似乎没有应用.我尝试从数据库中检索的任何用户,无论lastName的值是什么,都会被返回.
我误解过滤器是如何工作的吗?或者我错过了我如何配置的内容?请注意,我没有使用hibernate.cfg.xml; 使用JPA和注释为我配置了所有内容.
任何帮助将不胜感激.
谢谢.
我有一个iPhone应用程序,它使用ASIHTTPRequest与我服务器上的REST服务进行通信.当我在模拟器上运行时,它工作正常,但是当我进入手机本身时,我会得到奇怪的行为.
我第一次点击启动请求的按钮,我立即得到结果,一切都很好.从那时起,当我单击按钮启动连接时,连接大约需要2-3分钟.几乎看起来我首先开始的ASIHTTPRequest(并且我已经收到了正确的结果)还没有完成.在开始下一个请求之前,是否需要使用某种魔法来终止原始请求?我假设自从-start方法返回后,我从服务器得到原始请求完成的结果,我可以启动另一个.
有任何想法吗?
谢谢
--Steve
我目前正在学习 Gradle,所以这可能是一个简单的问题,但我似乎无法理解。
我需要在我的 gradle 构建中创建一个任务来删除一组中间文件。经过一番谷歌搜索后,我尝试了以下方法:
task deleteTest (type: Delete) {
doLast {
delete fileTree ('src/main/gen') {
include '**/*'
}
}
}
Run Code Online (Sandbox Code Playgroud)
这没有效果,因为当我运行任务时,“src/main/gen”目录中的所有文件仍然存在。通过阅读各种网站,这似乎是正确的方法,但它就是行不通。
只是为了笑,我尝试过:
task deleteTest (type: Delete) {
delete fileTree ('src/main/gen') {
include '**/*'
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎有效,所有文件都从目录中删除(尽管它留下了空的子目录,我也不明白)。但据我所知,这不是正确的方法,因为它在配置期间执行,而不是在执行期间执行。
有人可以向我解释一下吗?显然,对于 Gradle,尤其是这个问题,我并没有很理解。
我的应用程序正在尝试使用Hibernate注释.我已经安装了3.5.0版本的Hibernate,但是当我尝试加载我的应用程序时,我得到以下异常:
junit.framework.AssertionFailedError: Exception in constructor: testSubscriber (java.lang.NoClassDefFoundError: javax/persistence/spi/ProviderUtil
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.newInstance0(Class.java:326)
at java.lang.Class.newInstance(Class.java:308)
at javax.persistence.Persistence.findAllProviders(Persistence.java:79)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
at com.upod.dao.SubscriberDAOTest.<init>(SubscriberDAOTest.java:32)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at junit.framework.TestSuite.createTest(TestSuite.java:58)
at junit.framework.TestSuite.addTestMethod(TestSuite.java:280)
at junit.framework.TestSuite.<init>(TestSuite.java:140)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestLoader.getTest(JUnit3TestLoader.java:102)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestLoader.loadTests(JUnit3TestLoader.java:59)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:445)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: java.lang.ClassNotFoundException: javax.persistence.spi.ProviderUtil
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:330)
at java.lang.ClassLoader.loadClass(ClassLoader.java:254)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:399)
... 22 more
)
at junit.framework.Assert.fail(Assert.java:47)
at …Run Code Online (Sandbox Code Playgroud)