2017-10-18 5 views
1

私は下記のクラスを持つ簡単なプロジェクトを持っています。これは、春ブート1.5.4、春データコミッション1.13、春データjpa 1.11でうまく動作します。Spring Data 1.11からSpring Data 2.0にアップグレードすると、「SimpleEntityタイプのプロパティが削除されません」というメッセージが表示されます。

spring-boot 2.0.0.M5、spring-data-commons 2.0.0およびspring-data-jpa-2.0.0にアップグレードすると、起動時にPropertyReferenceExceptionが発生します。 SimpleEntityを入力してください!残念ながら、私は からスタックトレースを取得できません。エラーが発生したコンピュータは、セキュリティのために非常にロックされています。

アイデア?私が見つけた他の投稿は、私の状況に合っていないようです。

はここでクラスです(名前変更されたが、あなたのアイデアを得る):

package entity; 

@MappedSuperclass 
public abstract class BaseEntity implements Serializable { 
.... 
} 

package entity; 

@Entity 
@Table(schema = "ENTITIES", name = "SIMPLE") 
public class SimpleEntity extends BaseEntity { 
    @Column(name = "ID") 
    private Long id; 

    @Column(name = "CODE") 
    private String code; 

    @Column(name = "NAME") 
    private String name; 

    ... getters and setters ... 
} 

package repository; 
imoport org.springframework.data.repository.Repository 

public interface SimpleRepository extends Repository<SimpleEntity, Long> { 
    public SimpleEntity save(SimpleEntity entity); 
    public List<SimpleEntity> save(List<SimpleEntity> entities); 
    public void delete(Long id); 
    public SimpleEntity findOne(Long id); 
    public List<SimpleEntity> findAllByOrderByNameAsc(); 
    public List<SimpleEntity> findByCode(String code); 
    public List<SimpleEntity> findByNameIgnoreCaseOrderByNameAsc(String name); 
} 

答えて

1

は春データ2.0 CrudRepositoryインタフェースの互換性に影響する変更がある判明します。私が受信したエラーは、次の条件で発生します。

  1. あなたは1.xのSPINGデータプロジェクト
  2. あなたは直接リポジトリを拡張するインタフェースを持っている、CrudRepository
  3. のようなサブインターフェイスがあなたのリポジトリサブインターフェイスを宣言していません私の場合にはCrudRepository(で見つかった「空削除(ID)」メソッド「)がロング(削除のボイド」
  4. あなたは春データ2.xの

に更新して問題がCrudRepository 2.xで無リットルということですongerには "void delete(ID)"メソッドがあり、削除され、新しいメソッド "void deleteById(ID)"が追加されました。

削除メソッドのシグネチャが認識されない場合、削除プロパティが見つからないエンティティクラスに関するエラーが発生します。これは、1.2と2.xの両方に当てはまります。

+0

私は同じ問題に直面しており、この場合のドキュメントは見つかりませんでした。 – nivash

+0

私はそこにドキュメントがあるとは思わないでしょう。上記のポイント2を参照してください:私はCrudRepositoryのサブセットであるメソッドを正しく定義するために、私がどこまでリポジトリを使用するか選択しました。私がこのルートに行き、認識できない署名のあるメソッドを宣言すると、それは私の問題です:)それは、アップグレードするときにこれを認識しなければならないということです。 Springがよりうまくいくことができるのは、認識できないメソッドの署名が宣言されたというエラーメッセージと、Spring Dataの特定のバージョンのリポジトリインタフェースのJavaDocsへのURLを提供することだけです。 – Greg

関連する問題