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

Envers + MYSQL + List =SQLSyntaxErrorException:指定されたキーが長すぎました。

    @Access(AccessType.PROPERTY)を使用していることを忘れました クラスレベルで。とにかく、私は関連するゲッターメソッドを拡張しました

    @ElementCollection  
    @Column(length=175)     // keep in sync with maxDBStringLength
    public List<String> getEnvironmentalInterfaces() {
        return environmentalInterfaces;
    }
    

    したがって、実際にトリックを行います。ただし、情報を失わないようにするために、すべてのメソッドを拡張して、リストに要素を追加しました。

    // Must be in sync with @Column(length=175)  definitions
    protected static int maxDBStringLength = Constants.maxDBStringLength;
    
    public void addEnvironmentalInterfaces(String environmentalInterface) throws StringTooLongException {
        if(environmentalInterface.length() > maxDBStringLength) {
            throw new StringTooLongException(maxDBStringLength, environmentalInterface.length());
        }
        environmentalInterfaces.add(environmentalInterface);
    }
    

    これで、すべてのテーブルが作成されました。残念ながら、NullPointerの問題が発生しました。これは、Enversにあります。テストデータの作成時にNullPointerExceptionが発生する -同じ学習曲線を経験している場合に備えて。




    1. DATETIME形式の値に1日を追加

    2. ユーザーIDをデータベースにアップロードしようとすると、セッションはユーザーIDをnullとして返しますか?

    3. PHPコマンドの非同期エラー

    4. テーブルに一意性を適用するにはどうすればよいですか?