小编Gna*_*ana的帖子

Maven 工件版本命名约定

这是我的 pom 中有效的 Maven 工件版本吗?

<version>1.0-MyBranch-SNAPSHOT</version>
Run Code Online (Sandbox Code Playgroud)

或者工件版本应该只包含像 1.2.3-SNAPSHOT 这样的数字?

pom.xml maven

5
推荐指数
0
解决办法
848
查看次数

Spring Boot + JPA + 异常处理

我正在研究将我们的项目转换为 Spring Boot 应用程序的概念验证。我有一个具有两种方法的存储库类:保存和查找。

@Repository
public class UserDataRepo {
    private EntityManager em;

    public boolean save(UserDataModel model) {
        try {
            UserDataModel existingModel = find(model.getTable(), model.getFieldName();
            model.setId(existingModel.getId());
            this.em.merge(model);
            this.em.flush();
            return false;
        } catch (NoResultException e) {
            this.em.persist(model);
            this.em.flush();
            return true;
        }
    }

    public UserDataModel find(String table, String field) {
        Query query = this.em.createQuery(FIND_USERDATA_STATEMENT);
        query.setParameter("table", table);
        query.setParameter("fieldName", field);
        return (UserDataModel) query.getSingleResult(); // throws NoResultException
    } 
}
Run Code Online (Sandbox Code Playgroud)

在我的 Spring Boot 应用程序类中,我添加了@EnableJpaRepositories, @EnableTransactionManagement。我的应用程序启动正常,没有任何错误。但正如你所看到的,save方法依赖于find方法来确定是合并还是持久。如果没有记录,find 方法将抛出 NoResultException。我观察到它永远不会落入 save 方法的 catch 块内。Spring Boot 只是抛出一个错误,指出 NoResultException。 …

java spring hibernate jpa spring-boot

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

标签 统计

hibernate ×1

java ×1

jpa ×1

maven ×1

pom.xml ×1

spring ×1

spring-boot ×1