2017-07-10 32 views
0

Spring CrudRepositoryクラスを拡張すると、インターフェイスからsaveメソッドをオーバーライドするよう強制されます。次のエラーが表示されずに電話することができません: enter image description hereSpring crudrepositoryメソッドsave - メソッドを解決できません

これは、インターフェイスに組み込まれているデフォルトの方法だと思いました。私は何も変更することなく、repository.findAll()を正常に呼び出すことができます。これを説明するのを助けることができますか?

私のレポ:

@Repository 
@Component 
public interface StorageItemRepository extends 
CrudRepository<StorageItemPersistenceModel, Long> { 
} 

マイモデル:

@Entity 
@Table(name = "StorageItem") 
public class StorageItemPersistenceModel { 

/** Reference identifier. */ 
@Column(name = "ReferenceCode") 
private String reference; 

/** Date item was stored. */ 
@Column(name = "DateStored") 
private DateTime dateStored; 

/** Name of item. */ 
@Column(name = "Name") 
private String name; 

/** Item size. */ 
@Column(name = "Size") 
private String size; 

/** Image taken of item. */ 
@Column(name = "Image") 
private byte[] image; 


/** 
* Gets Image taken of item.. 
* 
* @return Value of Image taken of item.. 
*/ 
public byte[] getImage() { 
    return image; 
} 

/** 
* Gets Name of item.. 
* 
* @return Value of Name of item.. 
*/ 
public String getName() { 
    return name; 
} 

/** 
* Gets Date item was stored.. 
* 
* @return Value of Date item was stored.. 
*/ 
public DateTime getDateStored() { 
    return dateStored; 
} 

/** 
* Sets new Item size.. 
* 
* @param size 
*   New value of Item size.. 
*/ 
public void setSize(String size) { 
    this.size = size; 
} 

/** 
* Sets new Date item was stored.. 
* 
* @param dateStored 
*   New value of Date item was stored.. 
*/ 
public void setDateStored(DateTime dateStored) { 
    this.dateStored = dateStored; 
} 

/** 
* Gets Item size.. 
* 
* @return Value of Item size.. 
*/ 
public String getSize() { 
    return size; 
} 

/** 
* Sets new Image taken of item.. 
* 
* @param image 
*   New value of Image taken of item.. 
*/ 
public void setImage(byte[] image) { 
    this.image = image; 
} 

/** 
* Sets new Name of item.. 
* 
* @param name 
*   New value of Name of item.. 
*/ 
public void setName(String name) { 
    this.name = name; 
} 

/** 
* Sets new Reference identifier.. 
* 
* @param reference 
*   New value of Reference identifier.. 
*/ 
public void setReference(String reference) { 
    this.reference = reference; 
} 

/** 
* Gets Reference identifier.. 
* 
* @return Value of Reference identifier.. 
*/ 
public String getReference() { 
    return reference; 
} 

/** 
* Equals override. 
* 
* @param obj 
*   obj to compare. 
* @return equals boolean. 
*/ 
@Override 
public boolean equals(final Object obj) { 
    if (!(obj instanceof StorageItemPersistenceModel)) 
     return false; 
    if (obj == this) 
     return true; 

    StorageItemPersistenceModel storageItemControllerModel = (StorageItemPersistenceModel) obj; 
    return new EqualsBuilder() 
      .append(getDateStored(), storageItemControllerModel.getDateStored()) 
      .append(getReference(), storageItemControllerModel.getReference()) 
      .append(getName(), storageItemControllerModel.getName()) 
      .append(getSize(), storageItemControllerModel.getSize()) 
      .append(getImage(), storageItemControllerModel.getImage()) 
      .isEquals(); 
} 

@Override 
public String toString() { 

    final StringBuilder stringBuilder = new StringBuilder(); 

    stringBuilder.append(reference).append(name).append(size).append(dateStored).append(image); 

    return stringBuilder.toString(); 
} 

そして最後に、私のGradleの依存関係:

dependencies { 
testCompile project(':persistence') 
compile project(':persistence-model') 
compile project(':persistence-mapper') 

//test 
testCompile group: 'junit', name: 'junit', version: '4.11' 
testCompile group: 'com.github.springtestdbunit', name: 'spring-test-dbunit', version: '1.3.0' 
testCompile group: 'org.hamcrest', name: 'hamcrest-all', version: '1.3' 
testCompile group: 'org.springframework', name: 'spring-test', version: '4.3.9.RELEASE' 

//hibernate 
compile group: 'org.hibernate', name: 'hibernate-core', version: '5.2.10.Final' 
compile group: 'org.hibernate', name: 'hibernate-entitymanager', version: '5.2.10.Final' 
compile group: 'org.hibernate.javax.persistence', name: 'hibernate-jpa-2.1-api', version: '1.0.0.Final' 


//j2ee 
compile('javax.enterprise:cdi-api:2.0') 
compile group: 'javax.persistence', name: 'persistence-api', version: '1.0.2' 

//spring 
compile group: 'org.springframework', name: 'spring-core', version: '4.1.6.RELEASE' 
compile group: 'org.springframework', name: 'spring-beans', version: '4.1.6.RELEASE' 

//Spring data 
compile group: 'org.springframework.data', name: 'spring-data-commons', version: '1.13.4.RELEASE' 
compile group: 'org.springframework.data', name: 'spring-data-jpa', version: '1.11.4.RELEASE' 

// sql/db 
runtime group: 'mysql', name: 'mysql-connector-java', version: '5.1.21' 
} 

答えて

0

あなたがCrudRepository<StorageItemPersistenceModel, Long>を拡張しているが故に、エラーをList<StorageItem>を保存しようとしています見つけることができませんsave(List<StorageItem>)

+0

これは、1つのアイテムだけを保存しようとしても発生します。 –

+0

いいえ問題は単一項目対項目のリストではありません... 問題はタイプ – Zeromus

+0

yahビット遅い今日です - 歓声。 –

-1

私は、永続性モデルを超えてドメインモデルを保存しようとするばかげたタイプです。乾杯。

関連する問題