我开始使用Maven和Web应用程序项目,因此目录层次结构发生了变化.我为Maven集成创建了一个新分支.现在我有两个分支,一个具有旧的目录层次结构,另一个具有maven目录层次结构.两个分支都有新的提交(错误修正和新功能).
我想摆脱旧分支并将其更改合并到Maven分支.Git merge会产生无数的冲突,感觉无法解决.我相信这是因为文件路径已经改变.
处理此合并的最佳方法是什么?
我在使用RestTemplate发布带有UTF-8编码的JSON时遇到问题.JSON的默认编码是UTF-8,因此媒体类型甚至不应包含字符集.我试图将charset放在MediaType中,但它似乎无论如何都不起作用.
我的代码:
String dataJson = "{\"food\": \"smörrebröd\"}";
HttpHeaders headers = new HttpHeaders();
MediaType mediaType = new MediaType("application", "json", StandardCharsets.UTF_8);
headers.setContentType(mediaType);
HttpEntity<String> entity = new HttpEntity<String>(dataJson, headers);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<Boolean> formEntity = restTemplate.exchange(postUrl, HttpMethod.POST, entity, Boolean.class);
Run Code Online (Sandbox Code Playgroud) 我的问题是关于混合程序化和声明式事务可能出现的并发问题.我正在开发一种遗留软件(Spring + Hibernate),它以编程方式处理数据库连接和事务.
Session db = HibernateUtil.getSessionFactory().openSession();
db.beginTransaction();
// do stuff
db.getTransaction().commit();
Run Code Online (Sandbox Code Playgroud)
该软件具有较新的模块,这些模块使用Spring数据架构和声明式事务(@Transactional).当从"手动"打开的事务内部调用较新的Spring服务时,我们在极少数情况下使用Microsoft SQL Server遇到数据库死锁.我认为问题是有两个嵌套事务读/写同一个表导致死锁.
Session db = HibernateUtil.getSessionFactory().openSession();
db.beginTransaction();
// do stuff
springService.getStuff();
// do stuff
db.getTransaction().commit();
Run Code Online (Sandbox Code Playgroud)
有没有办法安全地混合这些交易或在两者中使用已经开始的交易?我应该在调用Spring @ Service/@ Repository方法之前关闭手动/以编程方式打开的事务吗?Spring和HibernateUtil都使用相同的实体管理器进行数据库连接.
我将MySQL 5.1社区服务器更新为5.6.在此之后,我遇到了奇怪的DATETIME(休眠类型时间戳)行为.出于某种原因,在保存hibernate映射对象后,我的日期从(例如)'2012-09-30 23:59:59'变为'2012-10-1 00:00:00'.我的日志说我确实在午夜之前保存了一秒钟,但是当我查看数据库时它已经改为第二天的开头.如果我使用相同的日期创建一个INSERT查询它没有问题.
根据MySQL文档,不应该使用DATETIME进行任何时区转换.我还测试了MySQL 5.5,我无法重现同样的问题.
我的hbm映射看起来像这样:
<composite-id>
...
<key-property name="timestamp" type="timestamp" column="timestamp"/>
</composite-id>
Run Code Online (Sandbox Code Playgroud)
编辑:我也有最新的MySQL jdbc驱动程序.
编辑2:你可以看到日期的变化.
22.04.13 12:04:54.149 DEBUG SQL:104 - insert into data_table (col_1, col_2, timestamp) values (?, ?, ?)
22.04.13 12:04:54.149 TRACE BasicBinder:83 - binding parameter [1] as [DOUBLE] - 1.0
22.04.13 12:04:54.149 TRACE BasicBinder:83 - binding parameter [2] as [INTEGER] - 1
22.04.13 12:04:54.150 TRACE BasicBinder:83 - binding parameter [3] as [TIMESTAMP] - Mon Apr 22 23:59:59 EEST 2013
22.04.13 12:04:54.151 ERROR SqlExceptionHelper:144 - Duplicate entry …Run Code Online (Sandbox Code Playgroud) 我有一个简单的thor脚本,它将资源从我项目中的子模块复制到目标目录.我已经配置了Exec Maven插件来在编译阶段运行脚本.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>thor</executable>
<arguments>
<argument>build:task</argument>
</arguments>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
从使用thor build:task的shell执行时,我的thor脚本运行正常但由于某种原因我的mvn编译失败并出现以下错误:
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (default) on project imsprocess: Command execution failed. Process exited with an error: 1 (Exit value: 1) -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (default) on project imsprocess: Command execution failed.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
Run Code Online (Sandbox Code Playgroud)
在错误消息之前,我可以看到我的脚本打印消息,它似乎工作正常.构建在没有exec插件的情况下完成.