使用Spring进行Hibernate二级缓存

我正在使用Spring + JPA + Hibernate。 我正在尝试启用Hibernate的二级缓存。 在我的Spring的applicationContext.xml我有: net.sf.ehcache.hibernate.SingletonEhCacheProvider /ehcache.xml 当我运行时,我得到错误: Caused by: org.hibernate.HibernateException: Could not instantiate cache implementation at org.hibernate.cache.CacheFactory.createCache(CacheFactory.java:64) Caused by: org.hibernate.cache.NoCachingEnabledException: Second-level cache is not enabled for usage [hibernate.cache.use_second_level_cache | hibernate.cache.use_query_cache] at org.hibernate.cache.NoCacheProvider.buildCache(NoCacheProvider.java:21) 所以它抱怨我没有启用二级缓存。 我尝试通过添加到我的applicationContext.xml来启用它: true 但仍然没有快乐。 我也尝试将其添加到我的ehcache.xml中: true 但它仍然无效。 将provider_class更改为org.hibernate.cache.EhCacheProvider也无济于事: org.hibernate.cache.EhCacheProvider 我的实体类被注释为使用缓存 @Cache(usage=CacheConcurrencyStrategy.READ_ONLY) 那么,我如何启用二级缓存? 编辑:这是在bean下: 已解决:由于我使用的是LocalEntityManagerFactoryBean因此它从META-INF/persistence.xml获取其设置。 我甚至没有读取applicationContext.xml中的设置。

如何在spring mongodb中检索数组中的匹配元素?

我试图检索具有特定“_id”的文档和具有另一个特定“_id”的单个嵌入文档。 我的文档代表一个目录,它包含一系列课程。 示例数据: ‘_id’: ObjectId(‘1111’), ‘name’: ‘example catalog’, … … ‘courses’: [ { ‘_id’: ObjectId(‘2222’), ‘name’: ‘my course’, … }, { …. } 在mongod中我运行这个聚合查询,然后回到我想要的: db.getCollection(‘catalogs’).aggregate( { $match: { ‘_id’: ObjectId(’58e8da206ca4f710bab6ef74′) } }, { $unwind: ‘$courses’ }, { $match: { ‘courses._id’: ObjectId(’58d65541495c851c1703c57f’) } }) 正如我之前提到的,我已经找回了单个目录实例,其中包含一个课程实例。 在我的java回购中,我试图做同样的事情: Aggregation aggregation = Aggregation.newAggregation( Aggregation.match(Criteria.where(Catalog.ID_FIELD).is(catalogId)), Aggregation.unwind(Catalog.COURSES_FIELD, true), Aggregation.match(Criteria.where(Catalog.COURSES_FIELD + ‘.’ […]

在Java中格式化OpenSSL的RSA密钥

背景 使用命令在Linux上使用OpenSSL生成RSA密钥, openssl genrsa -out mykey.pem 1024 创建了以下内容: “—–BEGIN RSA PRIVATE KEY—– MIICXQIBAAKBgQChs9Fepy5FgeL0gNJ8GHcKRHsYnM2Kkw19zwydDQNyh2hrHWV2 B11wpLFp8d0imcl2Wjb0oV/AxOhb3unQgNzs66LVuXJwS8icp3oIJZtExs6tkxzE s5mnU68wMeCYtJqHIZOmNblVWvpJMLNAwAVi3oLfnzDDbzjnDapm8M21nQIDAQAB AoGAZ11P1+acUHgvwMXcRtFIvvp5iYkqZouL00EYOghIjNx75gTbh7A7jbbpZeTi y6xsuMgAWy4QzGPSeG+tHMhS7+dYQNPuKSv5KtK3V7ubXz/I3ZN1etRVecA56QNw 7HKv6b7srolt08kogGIwpbbfl/mhfJHnv4Jeqd5lNMnK4e0CQQDWFZo4h22OlSaH ZGd3i4rwLrA0Ux5bkdh7YH0uEeE/nGzpVs1DPhsN8UCyq9LAiKYLlXeeCvwurKwo OgKlUCkzAkEAwVy2KignoRInFTAaYH8PQRfD835q+oC0Iu21BF68ne06U6wu+wWk bWiYxTOOb+TGZfA1vA6OAvGVGoXs1bHF7wJBAItGiop0MKYuCl7Sxy1SrxUKir+/ w2Q3QesiHs41+6Byl7hGLEuuv9MWPM0AU5/GRqAKoUNESkPjOi0BcG8z81kCQGGn OvCreugjzM0skAWv5bpQEExGyixdF5yURFlCpytzBYQAb3Gi9dmze4QMd6EW/wO4 fsrM5vehnlXY0TVTJM0CQQCMPVhub8LSo7T/lCzypvb/cgxJfyITRKcM2asrXud5 r27kbzsXqYum4huHqyFkb3pZammsYA/z89HchylfrD4U —–END RSA PRIVATE KEY—–” Java 6下的以下代码, KeyPairGenerator keyGen = null; try { keyGen = KeyPairGenerator.getInstance(“RSA”); } catch (NoSuchAlgorithmException e) { throw new RuntimeException(e); } KeyPair pair = keyGen.generateKeyPair(); privateKey = […]

Java:日期解析,为什么我会收到错误

Date date = new Date(); DateFormat dateFormat = new SimpleDateFormat(“yyyy-MM-dd’T’HH:mm:ss.SZ”);//2018-02-05T18:00:51.001+0000 String text = dateFormat.format(date); Date test = dateFormat.parse(text); 前三行很好。 当我尝试再次将字符串解析为日期时,我收到错误。 我怎么解决这个问题? 错误如下所示: Caused by: java.text.ParseException: Unparseable date: “2018-02-07T15:32:13.214+0100” at java.text.DateFormat.parse(DateFormat.java:366) ~[na:1.8.0_151] at TimeRange.parseDateFromIsoString(TimeRange.java:33) ~[classes/:na]

Java – 将hashmap写入csv文件

我有一个带有String键和String值的hashmap。 它包含大量键及其各自的值。 例如: key | value abc | aabbcc def | ddeeff 我想将此hashmap写入csv文件,以便我的csv文件包含如下行: abc,aabbcc def,ddeeff 我在这里使用supercsv库尝试了以下示例: http ://javafascination.blogspot.com/2009/07/csv-write-using-java.html。 但是,在此示例中,您必须为要添加到csv文件的每一行创建一个hashmap。 我有大量的键值对,这意味着需要创建几个哈希映射,每个哈希映射包含一行的数据。 我想知道是否有更优化的方法可用于此用例。 提前致谢!

PreparedStatement抛出语法错误

我正在使用PreparedStatements准备一个查询,当我用条件参数硬编码查询时它运行正常。 如果参数是从setString()方法传递的,则抛出错误。 com.mysql.jdbc.JDBC4PreparedStatement@2cf63e26: select * from linkedin_page_mess ages where company_id = ‘2414183’ com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘?’ at line 1 在错误日志中,我的查询上面看起来很好。 public JSONObject getLinkedInMessages(String compId) { linlogger.log(Level.INFO, “Called getLinkedInMessages method”); Connection conn = […]

Thread.Sleep()正在冻结

这是一个片段 kit.insertHTML(doc, doc.getLength(), “Hello”, 0, 0, null); try{ Thread.sleep(1000); }catch(Exception e){} 我使用HTMLEditorKit()和HTMLDocument()作为文本框。 文本框应该显示“Hello”然后等待一秒然而,当我尝试这个时,它等待一秒然后把单词“Hello”这不是我想要的。 我不确定为什么会这样,因为我把它按逻辑顺序排列。 如果有人能帮我这个,那就太好了。 编辑: 有没有人知道另一种选择,所以我可以使用“延迟”的那种效果?

NullPointerException(Java)

我已经尝试查看有关此问题的post,但我的代码中仍然遇到此错误的问题。 因此,在第四行中,我创建了一个名为SongDatabase的实例变量来访问SongDatabase类。 但当我下到线时, SongDatabase.addNewSong(); 在case 1 ,我得到一个java.lang.NullPointerException:null错误。 接口类: public class Interface { Scanner console = new Scanner(System.in); private SongDatabase SongDatabase; public static void main(String[] args) { Interface intFace = new Interface(); intFace.run(); } private void run() { switch (userInput) { case 1: SongDatabase.addNewSong(); break; case 2: SongDatabase.removeSong(); break; case 3: SongDatabase.sortSongs(); break; default: System.out.println(“Please enter […]

Java标签计时器和保存

让我解释一下我想做什么。 我有两个类扩展JFrame , StartJFrame和TestingJFrame 。 在main方法中,我启动了一个StartJFrame 。 它有一个按钮,开始。 当按下它时,我将其设置为隐藏该帧并启动TestingJFrame 。 现在我在T estingJFrame没有任何东西。 在那个屏幕中,我希望在右下角有一个标签,它是一个计时器,从45秒开始计数到0。我还需要每隔10秒运行一些代码,并收集一些数据。 在TestingJFrame中将有两个按钮,是和否。当按下其中一个按钮时,它应该停止计时器并保存信息。 数据基本上只是双倍。 每次运行程序时,我只会收集一次数据。 我有一个UserData类,它包含有关测试主题的一些信息,以及一个双精度列表,它每10秒添加一次。 我有一个大致的想法如何在java中保存数据。 我的问题是,我应该如何设置计时器,使其从45秒开始倒计时,当它达到0或用户按下是或否按钮时,它会调用一个函数来保存数据? 我想我可以处理保存数据部分。 对不起,如果这很容易,我是Java的新手(来自c#),而Swing让我感到困惑。

GridBagLayout面板对齐

我对GridBag布局管理器有一点问题。 我试图显示9个这样的面板: 为此,我将网格分开如下: 对于面板1到7没有问题,它们就像我想要的那样出现。 但问题始于面板S8和S9 。 正如你所看到的, S8和S9占据了一半的帧,但是我无法让它显示出来。 S8在S4开始时结束, S9在S4结束时开始,我无法处理半空间。 我想通过的方法是将S8和S9面板放在另一个采用所有框架宽度的面板上 – 但是必须有一个正确的方法来显示这两个面板而不将它们放在另一个面板中! 这是代码: workzone.setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); c.anchor = GridBagConstraints.NORTHWEST; c.fill = GridBagConstraints.BOTH; c.weightx = 0.5; c.weighty = 0.5; c.insets = new Insets(0,0,0,0); //S1 c.gridx = 0; c.gridy = 0; c.gridwidth = 2; c.gridheight = 2; workzone.add(S1, c); //S2 c.gridx = […]