web-dev-qa-db-ja.com

JPA @Tableアノテーションの「catalog」変数と「schema」変数は何に使用されますか?

これらが重要なのはなぜですか、手元のデータベースにどのような影響がありますか?

「スキーマ」はデータベースに存在するので、その時点ですでに決定されていませんか?

「カタログ」とは正確には何ですか? JPAカタログフィールドはどのような変数/入力を期待していますか?また、「スキーマ」フィールドについても同じ質問です。

19
Sam Levin

カタログとスキーマは、データベースのサーバー側で定義する「名前空間」です。一部のデータベースにはスキーマが含まれ、一部にはカタログが含まれ、一部には両方が含まれます。特定のユーザーでログインする場合、一部のデータベースではスキーマ/カタログがデフォルトでユーザーの名前空間に設定され、他のユーザーにテーブルが表示されないため、「共通」の名前空間を使用する必要があります。したがって、データのバックアップに使用しているデータベースによっては、これらの設定を無視することをお勧めします。

MySQLの場合、これらの設定を無視することをお勧めします。これは、JDBC URLの「データベース」部分(最後のスラッシュの後の部分)がデータベース名を指しているためです。これは、スキーマ(MySQLの場合)と意味的に同じです。

24
jpkrohling