小编Jal*_*esh的帖子

使用空字段的JAXB编组

这是一个非常简单的请求,但我没有找到办法.

我基本上试图在JAXB中设置一个角色,它表示只要遇到空字段,而不是在输出中忽略它,将其设置为空值.所以对于班级:

@XMLRootElement
Class Foo {
   Integer num;
   Date date;
….
}
Run Code Online (Sandbox Code Playgroud)

如果日期字段为空,则将其编组到XML文件中时,我的输出中没有该元素.我想要做的是包括输出中的所有字段; 如果它们为null,则将它们替换为 - 例如空白.所以输出应该是:

<foo>
  <num>123</num>
  <date></date>
</foo>
Run Code Online (Sandbox Code Playgroud)

谢谢,

Jalpesh.

java jaxb marshalling

48
推荐指数
2
解决办法
6万
查看次数

如何在maven中的集成测试目标中运行单个测试

我们为maven中的集成测试阶段生命周期定义了数百个测试,并且需要很长时间才能完成.

我想要做的只是运行一个测试integration-test.我试过做:

mvn -Dtest=<my-test> integration-test
Run Code Online (Sandbox Code Playgroud)

但这不起作用.将-Dtest只运行在单元测试目标测试,而不是集成测试阶段.我试过了-Dintegration-test=<my-test>,但是被忽略了.

有没有办法做到这一点 ?


我的配置是:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <executions> 
        <execution> 
            <id>surefire-it</id> 
            <phase>integration-test</phase> 
            <goals> 
                <goal>test</goal> 
            </goals> 
            <configuration> 
                <excludes> 
                    <exclude>none</exclude> 
                </excludes> 
                <includes>
                    <include>**/api/**</include> 
                </includes> 
    ..... 
Run Code Online (Sandbox Code Playgroud)

integration-testing maven-2 maven-surefire-plugin

42
推荐指数
4
解决办法
3万
查看次数

Postgres 事务似乎无缘无故地采用 AccessExclusiveLock

经过大量的谷歌搜索,我想我会问这个问题。我有一段代码对 postgres (9.2) 数据库执行以下操作:

  1. 开始交易
  2. 删除表上的索引(5 个索引)
  3. 在表中插入一百万行
  4. 重新创建索引
  5. 提交事务。

我对 postgres 的阅读告诉我,在此操作正在进行时,我应该能够做到这一点,并且仍然允许其他用户从表中进行选择(实际上甚至使用现有索引,因为它们尚未为它们删除)。

什么我实际上发现的是,所有其他的查询在桌子上(他们选择查询)被卡住。在查看 pg_locks 和 pg_stat_activity 表后,我发现我的事务在表上创建了一个 AccessExclusiveLock,阻止其他查询运行。此事务完成后,所有其他查询都可以正常执行。

所以,我的问题是 - 为什么创建索引/插入数据会在表上创建排他锁?不应该使用侵入性较小的锁(例如共享锁)吗?

我是基于我对这里的官方文档的阅读- 所以我不会因为任何人向 RTFM 提出要求而生气:)

谢谢,
贾尔佩什

postgresql locking transactions

5
推荐指数
1
解决办法
1242
查看次数