首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring粗存储库方法保存-无法解决方法

Spring粗存储库方法保存-无法解决方法
EN

Stack Overflow用户
提问于 2017-07-10 12:13:33
回答 1查看 7.1K关注 0票数 1

在扩展spring CrudRepository类时,它强制我从接口重写保存方法。如果没有收到以下错误,我无法调用它:

我认为这是一个内置在接口中的默认方法。我可以成功地调用repository.findAll(),而无需修改任何内容。你能帮我解释一下吗?

我的回购:

代码语言:javascript
复制
@Repository
@Component
public interface StorageItemRepository extends 
CrudRepository<StorageItemPersistenceModel, Long> {
}

我的模特:

代码语言:javascript
复制
 @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依赖关系:

代码语言:javascript
复制
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'
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-10 12:29:21

您正在扩展CrudRepository<StorageItemPersistenceModel, Long>,但正在尝试保存List<StorageItem>,因此错误没有找到save(List<StorageItem>)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45011737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档