私はSpring、Java、Hibernate、Postgresql環境で作業しています。私は私のデータベースでかなり深刻な遅さを見ています。私の具体的な質問は、データベースにヒットしないメソッドを含むクラスにSpringの@Transactional
アノテーションを追加するとどういう悪いことでしょうか?つまり、トランザクションを必要としません。これらのメソッドが、より頻繁に使用されるメソッドの一部であるとします。不必要なデータベーストランザクションは、遅さを引き起こしますか?
したがって、このような何か(単なる例):
@Component
@Transactional
public class ProjectManager {
public String getProjectUrl(Project project) {
//simple logic that does not use the database
return "/my/url/" + project.getId();
}
}
私は、データベースの遅さを引き起こす可能性が多くの要因があります理解しています。私はこれが巨大な赤旗かそれほど大きな取引ではないかと疑問に思いますか?これらのメソッドを抜き出して、@Transactional
というマークの付いていない別のクラスに配置する必要がありますか?
TIA
このメソッドのベンチマークは '@ Transactional'アノテーションがある場合とない場合がありますか? –
* "Springの' @ Transactional'アノテーションを追加するとどうなりますか?*あなたがそこに問題があると言うコードをプロファイルしない限り、ほとんどありません。 – Andreas
私はそれが何らかの助けになるかどうか100%確信していませんが、[ここ](http://blog.jhades.org/how-does-spring-transactional-really-work/)の説明を見つけることができます。あなたが '@ Transactional'を使うときに何が起こっているのでしょうか? – saljuama