我正在使用Hibernate和Spring作为我的Web应用程序.
在数据库操作中,Hibernate正在缓存实体并在下一个请求中返回它们而不读取实际的数据库.我知道这将减少数据库的负担并提高性能.
但是,虽然这个应用程序仍在构建中,但我需要在每个请求中加载数据库中的数据(测试原因).
有没有办法强制数据库读取?
我从这个log4j消息中确定了缓存.
Returning cached instance of singleton bean 'HelloController'
DEBUG [http-bio-8080-exec-42] - Last-Modified value for [/myApp/../somePageId.html] is: -1
Run Code Online (Sandbox Code Playgroud) 我需要从处理线程制作一个Android toast,这是OpenCV的自定义,所以我不能像这里建议的那样使用runOnUiThread(): Android:在一个线程中Toast.
大部分代码来自CVCamera示例应用程序.但是那些不熟悉的,当我选择Surf菜单按钮时,SURFProcessor就像这样调用:
else if (item.getTitle().equals("SURF")) {
defaultcallbackstack.addFirst(new SURFProcessor());
toasts(DIALOG_TUTORIAL_SURF, "");
}
Run Code Online (Sandbox Code Playgroud)
运行此处理器线程,以便当我按下手机的相机按钮(capturePress = true)时,将拍摄图像并完成处理.我想调用toasts方法如图所示:
class SURFProcessor implements NativeProcessor.PoolCallback {
@Override
public void process(int idx, image_pool pool, long timestamp,
NativeProcessor nativeProcessor) {
if(capturePress) {
String processMsg = processor.processFeatures(idx, pool, cvcamera.DETECT_SURF);
capturePress = false;
toasts(PROCESS_MESSAGE, processMsg);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是toasts方法,位于主类扩展Activity:
void toasts(int id, String msg) {
switch (id) {
case PROCESS_MESSAGE:
Toast.makeText(MMRapp.this, msg, Toast.LENGTH_LONG).show();
break;
.........
Run Code Online (Sandbox Code Playgroud)
现在这段代码给了我一个错误:"无法在没有调用Looper.prepare()的线程内创建处理程序." 如何调用toasts方法?或者是否可以让toasts方法监听processMsg中的更改?如果可能的话,我可以通过发送processMsg或改变类变量来实现.本质上,我需要从此处理器线程更新的String.
非常感谢,如果需要,我会提供更多信息/代码.
-Tom