spring data jpaで自動生成されるSQLの変更方法
spring-boot+spring-data-jpaで既存アプリの再構築を行おうと思っていますが
既存DBのカラム名の先頭にアンダースコアが付いているカラムがあり
生成されたSQLのカラムエイリアスでsqlエラーとなってしまいます。
カラム名自体は、@Column(name = "[__id]")とすることで
出力されるSQLで"__id"に変換されることは確認していますが
エイリアスを変更することは出来ないでしょうか?
テーブル設計を見直すべきは重々承知していますが、
ひとまず、既存テーブルを利用し再構築を行いたいと思っています。
native queryを利用すると正常に行きますが、
単純queryは出来るだけ記述せずにしたく
対応の可否、可能な場合の方法などご存知でしたご教示ください。
spring-data-jpaで利用されるhibernate-coreは5.3.7となります。
以下、試してみたことです。
パターン1: JpaRepositoryを使用しfindAll(実行時SQLエラー発生)
@Data
@Entity
@Table(name = "sample")
public class sample {
@Id
@Column(name = "[__id]")
private String id;
@Column(name = "[year]")
private Integer year;
出力されたSQL
select sample0_."__id" as __id_1_7_, sample0_."year" as year2_7_ from sample sample0_
パターン2: @Queryを使用しnativequeryを記述(正常に動作)
@Query("select \"__id\" as id, \"year\" from sample", nativeQuery = true)
出力されたSQL
select "__id" as id, "year" from sample
よろしくお願いします。