我有以下简单的代码:
当我在真实环境中运行时,打印指令会输出
在这两种情况下,我都使用WildFly 9服务器和Postgresql 9.4数据库。我还使用Arquillian进行单元测试。对我来说,唯一显著的区别是数据库中记录的数量。
我想避免丑陋的代码,例如:
无论我在什么运行环境下,有没有一种方法总是能使用同一个实例?
我有以下简单的代码:
@PersistenceContext(name = "mycontext")
private EntityManager entityManager;
public void getAggregatePower() {
String sqlString = "SELECT SUM(power) FROM mytable";
Object singleResult = entityManager.createNativeQuery(sqlString).getSingleResult();
System.out.println(singleResult.getClass().getName());
}
当我在真实环境中运行时,打印指令会输出
java.math.BigDecimal
。但是当我在单元测试环境中运行时,打印指令会输出java.lang.Double
。在这两种情况下,我都使用WildFly 9服务器和Postgresql 9.4数据库。我还使用Arquillian进行单元测试。对我来说,唯一显著的区别是数据库中记录的数量。
mytable
表中的power
列是numeric(10,3)
类型。我想避免丑陋的代码,例如:
if (singleResult instance of Double) {
...
} else if (singleResult instance of BigDecimal) {
...
}
无论我在什么运行环境下,有没有一种方法总是能使用同一个实例?