title: @Transactional and inheritance
body: <p>I used to add <code>@Transactional</code> annotations to all spring services (classes). And then I thought: do I really have to, if the transactinal behaviour should be the same? (Of course, if it shouldn't, we would add <code>@Transational</code> with other parameters to methods.) I tried to find some useful information about inheritance with <code>@Transactional</code>, read about <code>@Inherited</code> (and it looks like <code>@Transactional</code> is <code>@Inherited</code>). I experimented with <code>rollbackFor</code> and <code>noRollbackFor</code> for the following example, and it looks like <code>@Transactional</code> in <code>GenericService</code> worked for <code>doSmthSpecific</code>.</p>
  
  <pre><code>@Transactional
  public abstract class GenericService {
      public void doSmthGeneric() {
      }
  }
  
  public class SpecificService extends GenericService {
      public void doSmthSpecific() {
      }
  }
  </code></pre>
  
  <p>And in case <code>GenericService</code> was an interface, I think <a href="https://jira.springsource.org/browse/SPR-5322?focusedCommentId=49133&amp;page=com.atlassian.jira.plugin.system.issuetabpanels%3acomment-tabpanel#comment-49133" rel="nofollow">it wouldn't work</a>. I guess it's more like "correct me if I'm wrong" question, I'd like to know if it's actually all right to add <code>@Transactional</code> to superclass only, and if I'm missing something here. A detailed explanation (or a link to such explanation) would be appreciated.</p>