原生查询(JPA)未重置并返回相同的旧结果

我有一个本机SQL查询如下: for(init i=0; i <=2 ; i++){ String sql = "Select * from accounts where id = ?"; Query query = em.createNativeQuery(sql,AccountBean.class); query.setParameter(1, i ); AccountBean accountBean = (AccountBean)query.getSingleResult(); } 对于第一个循环,它工作正确,但第一个循环后的任何循环返回相同的结果到第一个,我调试它,参数更改,如果我更改它的工作正确 Query query = em.createNativeQuery(sql,AccountBean.class); 至 Query query = em.createNativeQuery(queryString); 关心Wish79

如何在Jooq处理日期?

当我们使用普通JDBC连接时,我们使用下面的代码来格式化日期或转换日期 if(argDB.equals(“Oracle”)){ sb.append(” AND TO_CHAR(PaymentDate, ‘YYYY-MM-DD’) <= TO_CHAR(SYSDATE,'YYYY-MM-DD')"); } else { sb.append(" AND CONVERT(VARCHAR(8), PaymentDate, 112) <= CONVERT(varchar(8), dbo.getdate(), 112)"); } 现在我们正在使用JOOQ你认为我们必须像以前一样转换日期,否则JOOQ可以在内部处理这类问题。 正如我现在检查的那样JOOQ不支持Oracle和Lukas的TO_CHAR方法给出了一些替代方法

缩短Java中已经很短的字符串

我正在寻找一种尽可能缩短已经很短的字符串的方法。 该字符串是主机名:端口组合,可能看起来像“ my-domain.se:2121 ”或“ 123.211.80.4:2122 ”。 我知道由于需要的开销和缺乏重复,常规压缩对于字符串的问题几乎是不可能的,但我知道如何做到这一点。 因为字母表限制为39个字符( [az] [0-9] – :。 ),所以每个字符可以容纳6位。 与ASCII相比,这可以减少高达25%的长度。 所以我的建议是这样的: 使用某种自定义编码将字符串编码为字节数组 将字节数组解码为UTF-8或ASCII字符串(这个字符串显然没有任何意义)。 然后反转该过程以获取原始字符串。 所以我的问题: 这可行吗? 有没有更好的办法? 怎么样?

JSP – “”VS“”之间的区别是什么

在使用JSP文件和servlet时,我遇到了和 。 这两种情况有什么区别? 谢谢

includeViewParams = true在模板化页面中不起作用

考虑这个模板: 这个使用它的页面(/pages/test.xhtml): 页面的bean: @Named @RequestScoped public class PageBean implements Serializable { public String getFoo() { return foo; } public void setFoo(String foo) { this.foo = foo; } private String foo; } 而这个豆子: @Named @ApplicationScoped public class Util implements Serializable { public String currentPageAction() { return FacesContext.getCurrentInstance().getViewRoot().getViewId() + “?faces-redirect=true&includeViewParams=true”; } } 当我在浏览器中加载http://localhost:8080/faces/pages/test.xhtml?foo=bar并单击 ,URL将更改为http://localhost:8080/faces/pages/test.xhtml 。 也就是说,视图参数不包含在重定向URL中。 但是,当我重构页面使其不使用模板时,它的行为与预期的一样。 […]

仅指定一些包以具有调试输出

我想记录我的Web应用程序的一些行为,它也实现了hibernate,spring等。 当我尝试从apache实现log4j logger时,我遇到了一些麻烦。 当我打开记录器时,它也在调试hibernate和spring,这是我不想要的。 我尝试配置属性文件以指定我的项目的包但它不起作用。 这是我的属性文件代码: log4j.rootCategory=ERROR, O log4j.category.com.my.package= DEBUG, FILE, O log4j.appender.FILE=org.apache.log4j.RollingFileAppender log4j.appender.FILE.File=log/logger.log log4j.appender.O=org.apache.log4j.ConsoleAppender …. and some layout 当我切换rootCategory = DEBUG但它正在调试hibernate和spring时,它可以工作。

用于在Java Play中测试的HTTP上下文! 2.0.2

我们正在尝试为视图编写测试,但其中一些需要会话变量才能正确呈现。 这是标准测试的样子: @Test public void indexTest() { running(fakeApplication(), new Runnable() { public void run() { Content html = views.html.index.render(loginForm); assertThat(contentType(html)).isEqualTo(“text/html”); assertThat(contentAsString(html)).contains(“log in”); } }); } loginForm是我们在测试类中声明的模拟表单。 但是,当我们尝试运行此测试时,我们会收到以下错误: ‘这里没有可用的HTTP上下文’ 我们尝试使用testServer并尝试从请求到该服务器获取http上下文,但无济于事。 谢谢 :-) 编辑 @nico_ekito 这是我的loginForm周围的代码: Form loginForm = Controller.form(Login.class); 但是,我认为问题在于被调用的控制器,因为视图不使用任何会话属性。 然而,authenticate()方法(在控制器中,我相信当表单提交到视图时)会使用会话。

Android-从DatePickerDialogFragment中删除Calendarview

我有一个正常工作的Datepickerdialog片段。当我点击按钮时,datepickerdialog打开whixh左侧有旋转器日期选择,右侧有日历视图。 对于我的应用程序在一个地方我只想显示旋转日期选择部分(日历视图部分必须删除或隐藏) 在其他地方我想要显示日历视图部分,并且必须隐藏或删除微调器日期选择。 但我尝试了各种各样的事情,比如隐藏日历视图 Method m = minDateSelector.getClass().getMethod(“setCalendarViewShown”, boolean.class); m.invoke(dp, false); 但当我添加这个我只得到错误… 对于这个人来说也是同样的问题, 使用DialopFragment创建的Datepicker也显示了Calender 我的代码是 DatePickerActivity.java import java.util.Calendar; import android.app.Activity; import android.app.FragmentTransaction; import android.os.Bundle; import android.view.View; import android.widget.Button; public class DatePickerActivity extends Activity { DateDialogFragment frag; Button button; Calendar now; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); now = Calendar.getInstance(); button = (Button)findViewById(R.id.date_button); button.setText(String.valueOf(now.get(Calendar.MONTH)+1)+”-“+String.valueOf(now.get(Calendar.DAY_OF_MONTH))+”-“+String.valueOf(now.get(Calendar.YEAR))); […]

为什么Java(Android?)将我的文件的最后修改日期设置为明天?

我正在使用以下方法在Android应用程序中创建文件: FileOutputStream fos = context.openFileOutput(fileName, Context.MODE_PRIVATE); fos.write(data); fos.flush(); fos.close(); 然后我试着进行一些清理,所以我将最后修改日期与某个阈值进行比较,但比较显示文件的最后修改日期是明天某个时间。 请记住,当我明天说,这是相对于今天(文件修改日期)…无论哪一天,你可能正在读这个。 所以基本上,如果我今天创建文件,并检查文件的最后修改日期,它说明天它最后修改。 这是Java正在做的事情,还是Android,或者我正在做的事情?

在Java中键入cast into byte

我是Java的初学者。 我遇到了一个名为Type Casting的概念。 我有以下片段 – class Demo { byte b; int a=257; double d= 323.142 b=(byte)a; System.out.println(b); b=(byte)d; System.out.println(b); } 代码的输出是-167 任何人都可以向我解释输出。 提前致谢!