2016-04-01 4 views
3

Oracle DBSpring Dataを使用しているときにエラーが発生します。エラーがされていますは私がに接続したいスキーマのテーブルへのアクセス権を持っていないSpringデータのエンティティにスキーマ名を追加しますか?

ORA-00942: table or view does not exist 

このエラーの原因は、ユーザーが、私はと接続していていることです。

私のデータベースにsynonymsを作成するか、各エンティティ/テーブルが属するschemaを指定するという2つの修正があります。

まず、スキーマアプローチを試します。どうすればいいですか?以下

マイ例エンティティ獣医スキーマで犬:あなたはスキーマ名を使用して、テーブルの前に付ける必要があります

@Entity 
@Table(name = "Dog") 
public class Dog 
{ 
    @Id 
    private String id; 

    @Column(name = "NAME") 
    private String name; 

    @Column(name = "Owner") 
    private String owner; 

    //getters and setters etc... 

答えて

5

@Table注釈には、schemaという属性があります。

@Table(name = "Dog", schema = "Vet") 
+0

これは上記の他の答え、SCHEMA.Tableメソッドと同じですか?どちらが望ましいでしょうか? – java123999

+0

@ java123999結果が同じかどうかわかりません。しかし、これはドキュメントが言うことです。 [Java Doc table](http://docs.oracle.com/javaee/7/api/javax/persistence/Table.html)。私のプロジェクトでは、私はこのように使いました。 – Patrick

+0

ありがとう、すべてのエンティティのプロパティファイルでスキーマを一度指定することも可能ですか?例:hibernate.vets.default_schema = VET? – java123999

2

とと彼ら挟ん.

@Table(name = "VET.Dog") 
+0

ありがとうございます、なぜこれが当てはまるのですか? – java123999

+0

これは、Oracleで指定されたスキーマの表を参照する方法です。 –

+0

これは@Table(name = "Dog"、schema = "Vet")のやり方よりも好ましいですか? – java123999

関連する問題