sql >> データベース >  >> RDS >> PostgreSQL

Atomikos:PostgreSQLの使用時にデータが保存されない

    ソリューション

    OK、謎は解けました! フラッシュ () セッション オブジェクト。

    次の答えは私にヒントを与えました:
    データベースにオブジェクトを保存しない休止状態ですか?>

    これが実際の例です(session.flush()に注意してください 閉じる前に呼び出す必要があります セッション ):

    @Service
    public class TableOneDaoImpl extends HibernateDaoSupport implements TableOneDao  {
    
        @Override
        public void save(TableOne tableOne) throws Exception {
            Session session = null;
            try {
                session = getSessionFactory().openSession();
    
                session.save(tableOne);
                session.flush();
            } catch (Exception e) {
                throw new Exception("Could not save tableOne!", e);
            } finally {
                if (session != null) {
                    session.close();
                }
            }
        }
    
    }
    


    繰り返しになりますが、MySQLを使用すると、なくても問題なく動作します。 明示的なフラッシュ。

    興味深い観察

    上記のテストWebアプリケーションは、純粋な Hibernateを使用しました 設定とHibernateの SessionFactory (つまり、persistence.xmlなし およびJPAentityManager )。しかし、 JPAを使用するように構成された同じテストアプリケーションもあります 。そして、そのアプリケーションでは、MySQLとPostgreSQLの両方で明示的にフラッシュしなくてもすべてが機能します。




    1. 挿入phpはphpmyadminにリンクできません。データを挿入すると、phpmyadminに表示されません。

    2. ユーザーのJavaJDBCアクセスが拒否されました

    3. 地理的に分散したMariaDBクラスターを設計する方法

    4. SQLデータベーステーブルのポリモーフィズム?