title: How to make Spring Data JPA by default naming from camelCase to snake_case unless explicitly specified?
body: <p>By default, my Spring Boot project had JPA mapping entity properties to table columns by transforming the names from camelCase to snake_case (e.g. from <code>fooBar</code> to <code>foo_bar</code>).</p>
  
  <p>I'm working on an existing DB, where the entity property names were kept as is for the table column names (e.g. from <code>fooBar</code> to <code>fooBar</code>), so I tried to use the <code>@Column</code> annotation to explicitly specify the name:</p>
  
  <pre class="lang-java prettyprint-override"><code>@Column(name = "fooBar")
  private String fooBar;
  </code></pre>
  
  <p>This wasn't working. I followed the advice given <a href="https://stackoverflow.com/a/38875123/1225328">here</a>:</p>
  
  <pre class="lang-text prettyprint-override"><code>spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
  </code></pre>
  
  <p>My <code>@Column</code> is now successfully taken into account, but I'm losing the camelCase to snake_case implicit transformation on the properties that don't have the <code>@Column</code> the annotation.</p>
  
  <p>Any idea how to transform from camelCase to snake_case by default, unless explicitly specified in the <code>@Column</code> annotation?</p>