问候,目前正在开发小型Web服务应用程序,其中Web服务(使用CXF + Spring)的响应处理并保存到数据库.使用数据库我正在使用Hibernate(3.5).在Web上浏览一些Hibernate + Spring示例,我经常可以看到HibernateTemplate的用法,所以我对这一刻感到有点困惑,并想问:
你在Hibernate3应用程序中使用HibernateTemplate吗?什么时候HibernateTemplate可以让您的开发生活更美好,并且根据我可以决定的点,我是否需要使用它?
谢谢.
美好的一天,在数据库中有表与房屋销售记录.对于每个房屋记录,都有货币代码(ISO 4217格式)字段.是否可能以某种方式从该代码中获取货币符号,以便我可以在演示方面使用它?
谢谢.
PS正在尝试解决该问题,将Currency对象(由Currency.getInstance(currencyCode)创建)设置为DecimalNumberFormat setCurrency方法,然后格式化我需要显示的值,但格式化的值仍然没有货币符号.
是否可以DBAppender在Logback中更改默认表名,该怎么办?
PS浏览了我发现DBAppender使用该DBNameResolver接口获取表名的源代码,我可以在定制的表中实现此接口dbNameResolver,然后使用定制的表名,但是我的主要问题是如何将定制的表名设置dbNameResolver为我的表DBAppender... 那可能吗 ?
某些课程中有一种方法
public void addAdditionalData(List<PairOfKeyString> data, List<Text> comments)
来自数据列表的信息对于此方法至关重要 - 这意味着如果数据为空或为null,则不执行此方法中的逻辑.我有两个选择如何做到这一点
第一
if (data != null && !data.isEmpty()) {
do somelogic here
}
第二
if(data == null || data.isEmpty()) {
return;
}
Run Code Online (Sandbox Code Playgroud)
您更喜欢哪个选项?为什么?谢谢 !
为基于 spring 的应用程序编写集成测试遇到事务回滚问题 - 数据已插入,但事务回滚后,数据仍在数据库表中... Spring 3.0.5, JUnit 4.8.2
集成测试代码
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:/applicationContext.xml" })
@TransactionConfiguration(transactionManager="txManager",defaultRollback=true)
@Transactional
public class GenerateCodeStrategyTest {
@Autowired
@Qualifier(value = "generateCodeStrategy")
private Strategy generateCodeStrategy;
@Test
@Transactional
public void genCodeIntegrationTestCommunicationFailure() {
//generate some parameters
SMPPSession mockedSession = mock(SMPPSession.class);
generateCodeStrategy.setSession(mockedSession);
generateCodeStrategy.sendRequest(params);
final SubscribeInfo subscribeInfo = subscribeDao.getUserByPhone(phone);
assertNotNull(subscribeInfo);
assertEquals(phone, subscribeInfo.getPhone());
assertEquals(Status.BAD_STATUS, subscribeInfo.getStatus());
}
}
Run Code Online (Sandbox Code Playgroud)
在日志中的调试模式下,我可以看到事务已启动和回滚
INFO: Began transaction (1): transaction manager [org.springframework.jdbc.datasource.DataSourceTransactionManager@1edd9b3]; rollback [true]
[main] DEBUG org.hibernate.SQL - insert into sms_subscribe (phone_cell, status, ts_subscribe, subscription_status, ts_unsubscribe, receiverIdentification, user_id) …Run Code Online (Sandbox Code Playgroud) 今天是个好日子.
我在我的groovy项目中使用spock框架进行测试(IDE - Intellij Idea 12.6).我的spock规范类将文件名传递给groovy对象进行处理(该文件肯定在classpath中),但当我尝试以这种方式获取该文件时
def resource = getClass().getClassloader().getResourceAsStream(filepath)
assert resource != null : "No input stream found for path ${filepath}"
def rootNode = new XmlParser().parse(resource)
Run Code Online (Sandbox Code Playgroud)
然后resource == null.
我尝试调试,在Expression Evaluation窗口中,此代码getClass().getResource(fileName)返回资源.
我试图检查在第一种情况下使用哪个类加载器(在类中使用代码)和第二种情况(表达式评估窗口).
在第一种情况下,类加载器是sun.misc.Launcher$AppClassLoader@18dabf1,但在Expression Evaluation窗口中,classloader是groovy.lang.GroovyClassLoader$InnerLoader@1e69757我认为这是我的资源为空的原因.
有人可以指导我做错了什么,如何加载该资源文件?
更新:
更改了资源文件的解析方式.当filepath- 文件的完整路径有效,但如果filepath只是文件名和那个文件在classpath中resource == null
更新2:
更改资源文件加载的方式,清理依赖项位,一切正常,我想昨天不是我的一天.
java ×5
spring ×2
classloader ×1
coding-style ×1
currency ×1
groovy ×1
hibernate ×1
junit4 ×1
logback ×1
resources ×1
transactions ×1