- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发一个带有 Spring Boot 2 后端和 jQuery 前端的项目。因此,前端将 Ajax 请求发送到 Spring REST Controller 以操作数据库实体。
当涉及到通过这些 ajax 调用创建具有外部链接实体的实体时(例如创建具有多个地址的人),我会问自己最佳实践是什么,同时考虑事务操作并减少冗余代码。
我已经考虑过这些可能性:
多次ajax调用使用每个实体一个 ajax 调用创建链接实体并检查它们是否失败。如果失败,请删除所有创建的实体,并为每个实体调用 ajax 调用,就像手动回滚一样。看起来是一个非常糟糕的概念。
一次 Ajax 调用发送所有参数让一个 ajax 调用发送必须创建的实体的所有必要参数。然后通过实体服务服务器端创建所有实体。但这里如何操作交易呢?那么如何减少冗余代码呢?
提前致谢
最佳答案
首先,我需要知道您正在使用哪个数据库。如果您使用 MongoDB,那么请忘记事务部分(除非您使用 4.0 版本和事务支持)。所以我猜你会选择 SQL 数据库。
您问题的答案可能取决于前端如何处理数据。对我来说,第一个选项无论如何都没有意义。看来您要么想要包含所有地址,要么根本不包含地址,所以我只会对所有地址发出一个请求,因为整个数据被视为不可分割的集合。
使用Hibernate和事务管理器可以轻松解决事务部分(只需将保存地址的方法注释为@Transactional即可)
我会这样实现:
Controller :
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/{userId}/address")
public List<Address> addAddress(@PathVariable String userId,
@RequestBody AddressInsertRequest request){
return userService.updateAddresses(userId, request.getAddresses());
}
//Externalize to oter class
public class AddressInsertRequest {
private List<Address> addresses;
public List<Address> getAddresses() {
return addresses;
}
public void setAddresses(List<Address> addresses) {
this.addresses = addresses;
}
}
}
服务:
public class UserService {
//TODO Implement with hibernate
private UserRepository userRepository;
@Transactional
public List<Address> updateAddresses(String userId, List<Address> addressList){
User user = userRepository.findById(userId);
user.setAddressList(addressList);
userRepository.save(user);
return user.getAddressList();
}
}
关于javascript - 最佳实践 : Spring Boot Backend & jQuery Frontend,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52096449/
https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-policies
https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-policies
首先,我是 django/python 的新手。 我正在尝试创建一个登录网站,允许用户注册一个帐户并通过电子邮件或直接登录验证 通过 fb 或 google(Oauth) 当我点击发送到 email
我正在ubuntu服务器上部署Django Web应用程序。配置已设置。但是,以某种方式,它显示了500 Internal Server Error。我检查了apache错误日志,发现以下错误条目:
我是深度学习的初学者,在执行实际作业时,在 keras.backend 上看到了 Keras 文档. 我解释了很多遍。但是,我不能完全理解 max 和 argmax 函数之间的区别。 最佳答案 我将使
我的后端作业基于 cron 作业(每 4 小时一次)运行。但它在没有处理数据的情况下终止。服务器日志显示如下: 500 15377121ms 0kb instance=0 AppEngine-Goog
django.db.backends.dummy 和 django.db.backends.mysql 有什么区别?我发现有人使用dummy和mysql,但我搜索后不知道它们的区别。 最佳答案 dja
我注意到 tf.keras.backend.get_session() 和 keras.backend.get_session() 返回不同的 session 对象。 无论如何要确保它们返回相同的对象
如果一个 gis 应用程序有一些没有 gis 相关列的表,使用多个数据库(django.db.backends.postgresql_psycopg2 和 django.contrib.gis.db.
I have a question about Ariflow oracle connection. I tried a lot but couldn't find a solution, I
django_redis导入失败 six来自 django.utils 追溯: Internal Server Error: /harem/reponse/ Traceback (most recen
我想运行 python 文件。但我在运行时可以检查到这个错误。 导入错误:pycurl:libcurl 链接时 ssl 后端 (openssl) 与编译时 ssl 后端(无/其他)不同 我的系统是Ma
我正在尝试实现自定义损失函数 def lossFunction(self,y_true,y_pred): maxi=K.argmax(y_true) return K.mean((
当我的神经网络的 forward 函数(训练阶段完成后)正在执行时,我遇到了 RuntimeError: Expected object of backend CUDA but got backend
我从头开始创建了一个Kotlin原生应用程序,我得到了上面的错误。我怎么才能解决这个问题呢?这是一款简单的“Hello World”应用程序。我有其他计算机,但该错误没有出现在那里。我认为这与科南没有
我目前正在学习 Redux,我发现拥有一个状态真实来源有很大好处。我想知道后端是否也可以从状态管理中受益,但我在网上看不到任何相关信息,所以我认为不会。虽然我找到了this这似乎实际上是为了将 red
我有一个 TYPO3 网站,其中默认网站语言是德语。不久前,我添加了另一种网站语言,即英语。 我现在需要做的是在后端交换这两种语言: 从: 默认:德语 替代:英语 到: 默认:英语 替代:德语 所以在
客户端渲染和服务器端渲染有什么区别。他们听起来有点相似。我参加了一个网络研讨会,那里的开发人员说为客户端做这个,为服务器端做这个。两者有什么区别吗? 最佳答案 嗯,客户端意味着服务器向客户端发送一些结
目前我正在使用 Dialogflow 处理 LINE 应用程序中来自用户的消息。 我计划将 Dialogflow 与自定义后端实现集成。 fulfillment 应该有一些特定于用户的消息(例如每个用
我已经在本地环境中为这个问题苦苦挣扎了一段时间了。我一直到处寻找许多不同的解决方案。 设置:我在配置文件中创建一个后端,该后端指向没有缓存(通过)的外部网站。 行为:随机地,后端连接关闭,并显示消息“
我是一名优秀的程序员,十分优秀!