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

EclipseLinkおよびPostgreSQLでのUUIDの使用

    主キーとしてEclipseLinkJPA+ Postgresql+UUIDで同じ問題が発生しました。

    これを解決するために、Githubと以下のリンクのコードをマージしました: https: //forums.oracle.com/forums/thread.jspa?messageID=4584157

    以下のUUIDConverterのコードは私にとってはうまくいきましたが、コードは確かに最高ではありません。

    public void initialize(DatabaseMapping ARGMapping, Session ARGSession)
    {
        final DatabaseField Field;
        if (ARGMapping instanceof DirectCollectionMapping)
        {
            Field = ((DirectCollectionMapping) ARGMapping).getDirectField();
        }
        else
        {
            Field = ARGMapping.getField();
        }
        Field.setSqlType(Types.OTHER);
        Field.setTypeName("uuid");
        Field.setColumnDefinition("UUID");
    
        for (DatabaseMapping m : ARGMapping.getDescriptor().getMappings())
        {
            assert OneToOneMapping.class.isAssignableFrom(ManyToOneMapping.class);
            if (m instanceof OneToOneMapping)
            {
                for (DatabaseField field : ((OneToOneMapping) m).getForeignKeyFields())
                {
                    field.setSqlType(Types.OTHER);
                    field.setColumnDefinition("UUID");
                    field.setTypeName("uuid");
                }
            }
        }
    }
    


    1. DateDiffを使用する場合のSQL動的DatePart

    2. SQLSTATE[HY000][1045]CakePHPを使用したユーザー'username'@'localhost'のアクセスが拒否されました

    3. UNIXタイムスタンプはどのようにint列に格納する必要がありますか?

    4. クロス集計転置クエリリクエスト