这是我的 pom 中有效的 Maven 工件版本吗?
<version>1.0-MyBranch-SNAPSHOT</version>
Run Code Online (Sandbox Code Playgroud)
或者工件版本应该只包含像 1.2.3-SNAPSHOT 这样的数字?
我正在研究将我们的项目转换为 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。 …