2017-02-24 32 views
0

私は春のブートにとって非常に新しいです。私はoracle dbに接続できますが、データをフェッチできないようです。初心者の方は、まず正しい資格情報を試してみましたが、エラーはスローされませんでした。一方、私は自分のパスワードを変更し、無効なパスワードエラーを得ました。だから私は私の接続が行われると思われる? 春のブートでOracleからデータを取得できません

私の完全なスタックトレース

は、ここで見つけることができます: spring boot hibernate query invalid user error

私はいくつかの他の記事から見たように、春はキャメルケースにカラム名を変換するので戦略を命名することは問題がある可能性があります。しかし、私の場合、私は使用して以来、問題ではないようです。

spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl 

これは、春の列名の変更を妨げています。ここで

は私が手クエリです:

Hibernate: select * from (select post0_.id as id1_0_0_, user1_.id as id1_1_1_, post0_.author_id as author_id5_0_0_, post0_.body as body2_0_0_, post0_.date as date3_0_0_, post0_.title as title4_0_0_, user1_.fullName as fullName2_1_1_, user1_.passwordHash as passwordHash3_1_1_, user1_.username as username4_1_1_ from posts post0_ left outer join users user1_ on post0_.author_id=user1_.id order by post0_.date DESC) where rownum <= ? 

そして、それは例外がスローさ:

java.sql.SQLSyntaxErrorException: ORA-01747: invalid user.table.column, table.column, or column specification 

を、私はまた、以下のようにネイティブ使用しようとしました:

@Repository 
public interface PostRepository extends JpaRepository<Post, Long> { 
@Query(value = "SELECT * FROM POSTS aa JOIN USERS bb ON aa.AUTHOR_ID=bb.ID", nativeQuery = true) 
List<Post> findLatest5Posts();} 

今回はエラーは投げられませんでした。ただし、空の結果セットは何も返しません。

この問題を解決するにはどうすればよいですか?

ありがとうございます。

答えて

0

最近同じ種類のエラーが発生しました。問題は、予約語であるのに対し、 "VALUES"と呼ばれる列があることでした。私はちょうどそれを "VALUE"に変更し、問題は解決されました。

予約語「DATE」に同じ種類の問題があると思います。たとえば、「CREATION_DATE」に変更してみてください。

2番目のクエリについては、選択にPOSTS.DATE列を指定していないため、おそらく同じ問題は発生しません。

+0

多くのありがとう@Nis!私は列の名前を変更し、それは働いた。さらに、他にもいくつか問題がありました。例えば、私はコードを使ってリンクを与えていたので、私は外部キーを手動で追加しました。だから私はそれのためにエラーがあった。要約すると、手動でテーブルに主キーを追加し、私の場合に働いた予約語を変更する。 –

関連する問題