##解決策
PostgreSQL 次のようにスキーマの名前を指定する必要があります:
@Table(name="table_name", schema = "myapp")
^^^^^^^^^^^^^^^^
##ロングストーリー
このエラーが発生しました:
org.postgresql.util.PSQLException: ERROR: column user0_.id does not exist
PostgreSQLでデータベースを作成するとき 、 publicという名前のデフォルトスキーマを作成します 、したがって、Entity
で名前を指定しない場合 その後、Hibernateはパブリックで自動的にチェックします スキーマ。
##グッドプラクティス
database
の名前に大文字を使用しないでください 、schema
、tables
またはcolumns
PostgreSQL 。それ以外の場合は、この名前を引用符で囲む必要があります。これにより構文エラーが発生する可能性があるため、代わりに:
を使用できます。
@Table(name="table_name", schema = "schema_name")
^^^^^^^^^^ ^^^^^^^^^^^
- キーワードユーザー PostgreSQLの予約キーワードです ご覧ください
+----------+-----------+----------+-----------+---------+
| Key Word |PostgreSQL |SQL:2003 | SQL:1999 | SQL-92 |
+----------+-----------+----------+-----------+---------+
| .... .... .... .... .... |
+----------+-----------+----------+-----------+---------+
| USER | reserved |reserved | reserved | reserved|
+----------+-----------+----------+-----------+---------+
- Dtoの違い およびエンティティ エンティティの名前の末尾にエンティティを使用することをお勧めします(例:
UserEntity
)。