小编Fil*_*lip的帖子

H2 - 如何截断所有表格?

我假设有一种方法可以从代码中做到这一点,至少有一些好的解决方法.

请考虑我不想删除所有表(我已经看过这个命令),只是为了删除它们中的行,但保留现有的模式和所有约束.

也许我可以以某种方式从元数据中获取所有表的列表并分别应用TRUNCATE命令?但他们的关系和外键怎么样?

任何的想法?

sql database h2

18
推荐指数
1
解决办法
1万
查看次数

Maven替代(等效)Gradle应用程序插件

我正在使用Maven构建我的项目,但我还没有找到相当于Gradle的Application Plugin.

是否有一些好的Maven插件用于创建发行版.zip?这样我们Gradle的应用程序插件?更重要的是:比如应用程序插件中的Gradle任务"distZip" - 创建一个完整的分发ZIP存档,包括运行时库和操作系统特定的脚本.

Maven用户使用什么来解决这个用例?

java plugins build gradle maven

11
推荐指数
1
解决办法
795
查看次数

为什么原始包装类在作为参数传递后不会改变?

好.我完全清楚Java中的所有值都是按值传递的.但是这个例子并不像我预期的那样:

public class Test {

private static void changeInteger(Integer x) {
    x = 5;
}

public static void main(String[] args) {
    Integer x = 0;
    changeInteger(x);
    System.out.println(x);
}
Run Code Online (Sandbox Code Playgroud)

}

因为我将包装类传递给changeInteger方法,所以我传递了它的地址,所以,在执行了应该影响我的x变量的函数并将其设置为5.但是eclipse说输出仍然是0.我理解错了什么?

java

10
推荐指数
1
解决办法
2781
查看次数

从Win7连接到Linux VirtualBox中的PostgreSql数据库

正如标题所述,从Win7主机开始,我正在尝试访问在同一台机器上的VirtualBox中的Linux Centos 5.8中建立的Postgres 9.3.我正试图从PGAdmin访问它,当我从Win7服务启动Postgre时一切正常,所以PGAdmin配置得很好.

我试过了什么?我已经阅读了很多关于这个主题的文章,甚至在这个论坛上也有一些问题,但没有任何效果.我有:

  1. 在VirtualBox GUI中切换到NAT并转发端口5432
  2. 在postgresql.conf文件中设置listenadresses ='*'
  3. 把所有10.0.2.1/24 md5行的主机放在pg_hba.conf文件中
  4. 在win7防火墙设置中放入5432端口入站和出站规则
  5. 用#service iptables停止禁用linux防火墙

提一下.当在虚拟linux中启动服务时,我可以从linux访问它,因此服务正常启动.问题是Windows没有看到该服务.当从linux启动服务时,我可以在Win中启动相同的服务,反之亦然,尽管端口5432应该被占用.

对我来说最可疑的部分是第3点)因为我不确定我是否在规则中放置了好的地址.根据我的网络,这个地址因文章而异,如果有人能解释我如何确定放在那里的地址(或范围),我将不胜感激.或者如果可能的话,或者其他建 谢谢.

linux postgresql virtualbox windows-7

8
推荐指数
3
解决办法
1万
查看次数

JUnit - 预期的异常消息正则表达式

我正在从TestNg切换到JUnit.我需要将预期的异常消息与预定义的正则表达式匹配,例如在以下TestNg代码中:

@Test(expectedExceptions = SomeClass.class, expectedExceptionsMessageRegExp = "**[123]regexExample*")
    public void should_throw_exception_when_...() throws IOException {
        generatesException();
    }
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我无法在JUnit中实现相同的行为.我想出了这个解决方案:

@Rule
public ExpectedException expectedEx = ExpectedException.none();

@Test
public void should_throw_exception_when_...() throws IOException {
    expectedEx.expect(SomeClass.class);
    expectedEx.expectMessage("**[123]regexExample*");
    generatesException();
}
Run Code Online (Sandbox Code Playgroud)

但是方法expectedEx.expectMessage("**[123]regexExample*");不支持正则表达式,我需要为它提供精确的硬编码消息.我已经看到这可以通过使用Matcher提供该方法来实现,但我不确定如何正确地完成它.

这样做有什么好办法吗?

java testing junit testng

8
推荐指数
2
解决办法
5241
查看次数

从......中选择 - 基于JSON格式的值

假设我有一个包含几个常见列的数据库表,例如名称,性别,年龄......

此外,我还有一个使用JSON数据类型(可从Postgres 9.2获得)的附加列,其中包含JSON中的任意长度和任意字段:

{"occupation":"football"}

{"occupation":"football", "hair-colour":"black"}

{"hair-style":"curly"}
Run Code Online (Sandbox Code Playgroud)

使用Postgres 9.3的新功能我希望返回所有占用=足球的行.

像这样的伪: select * from table where json_field.occupation = football

有办法做到这一点吗?

sql postgresql json postgresql-9.3

4
推荐指数
1
解决办法
384
查看次数

File.listFiles()在Linux上不起作用

好.我有以下Web应用程序片段(在构造函数中调用 - 如果这很重要):

    private File[] logFiles;
    ...
    try {
        File directory = new File(auditDirectory);
        LOG.debug("Found directory: " + directory.getAbsolutePath());
        logFiles = directory.listFiles();           
        LOG.debug("Number of logFiles: " + logFiles.length);
    } catch (Exception e) {
        LOG.error("Exception: ", e);
        throw new RuntimeException("Failed to get list of audit files", e);
    }
Run Code Online (Sandbox Code Playgroud)

在我的Windows环境(localhost)中,一切都像魅力一样.在linux(ubuntu)环境上部署之后,似乎就行了

directory.listFiles();
Run Code Online (Sandbox Code Playgroud)

返回null值.我从以下linux部署日志得出结论:

c.a.s.a.a.AuditFileSource - Found directory: /home/myapp/myappfolder/logs
c.a.s.a.a.AuditFileSource - Exception: 
java.lang.NullPointerException: null
    at com.myapp.services.administration.audit.AuditFileSource.<init>(AuditFileSource.java:31) ~[com.myapp.services-2.2.2.jar:2.2.2]
    at... 
Run Code Online (Sandbox Code Playgroud)

日志行AuditFileSource.java:31实际上是行:

LOG.debug("Number of logFiles: " + logFiles.length);
Run Code Online (Sandbox Code Playgroud)

很明显,NullPointerException是作为尝试访问logFiles变量上的lenght而引发的,该变量为null.

我的第一次尝试是更改相关Linux文件夹的权限,但他们已经具有读取权限.我完全不解.任何的想法?

java linux ubuntu web

2
推荐指数
1
解决办法
3983
查看次数

播放框架缓存存储在哪里?

我正在构建使用Play Framework的Java应用程序,对我来说访问缓存文件至关重要.

我正在寻找Play Framework缓存所在的位置.那是在磁盘上的某个地方,如果是的话,在哪里?

我可以以某种方式从它(例如从Windows资源管理器)访问文件,或者故意隐藏用户(或可能加密)?

java caching playframework

2
推荐指数
1
解决办法
1255
查看次数