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

Hibernate-1に対して2つの列を結合する方法はありますか?

    ソリューション1

    Table1にデータベースビューを作成します Table2を参照する外部キーを公開します 。とにかくビューに使用する、投稿されたクエリから外部キーを投影します。次に、エンティティをビューにマップします。

    ソリューション2

    数式に参加 を使用します :

    たとえば、Table1にマップされたエンティティで Table2にマップされたエンティティとの多対1の関連付けを定義します (ユースケースのようです):

    @ManyToOne
    @JoinColumnsOrFormulas({
          @JoinColumnOrFormula([email protected](value="(SELECT t2.serial FROM Table2 t2 WHERE serial1 = t2.serial OR serial2 = t2.serial)", referencedColumnName="serial"))
        })
    private Entity2 entity2;
    

    ただし、当面の間、Hibernateでは結合式は非常に壊れやすいようです(これは多対1の関連付けに対してのみ機能するようになり、Entity2を作成する必要がありました。 Serializableを実装する;それ以外の場合は機能せず、奇妙なNullPointer-をスローしました およびClassCastException s)。



    1. SQL ServerManagementStudioを使用してBLOBをデータベースに挿入する方法

    2. ResultSet-> getString()は、値が16以上の場合にクラッシュします

    3. mysqli_connect():(HY000 / 2002):ソケットを介してローカルMySQLサーバーに接続できません

    4. 致命的なエラー:未定義のメソッドmysqli ::bind_param()の呼び出し