首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spring-data-couchbase - org.springframework.data.mapping.model.MappingException

spring-data-couchbase - org.springframework.data.mapping.model.MappingException
EN

Stack Overflow用户
提问于 2014-04-04 17:09:29
回答 4查看 4.2K关注 0票数 4

我正在尝试用spring-data-couchbase版本1.0.0.RELEASE持久化这个对象:

代码语言:javascript
复制
package com.spring.data.couchbase.user;

import javax.persistence.Entity;

import org.springframework.data.annotation.Id;
import org.springframework.data.couchbase.core.mapping.Field;

@Entity
public class User {

@Id
private String id;

public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}

@Field("lastName")
private String lastName;

public String getLastName() {
    return lastName;
}

public void setLastname(String lastName) {
    this.lastName = lastName;
}

public String getFirstName() {
    return firstName;
}

public void setFirstName(String firstName) {
    this.firstName = firstName;
}

@Field("firstName")
private String firstName;

   }

当我尝试将对象保存到couchbase数据库时,我得到了一个MappingException。下面是完整堆栈。AFAIK entiry似乎很好。spring-data-couchbase还需要什么额外的东西吗?

代码语言:javascript
复制
Exception in thread "main" org.springframework.data.mapping.model.MappingException: An ID property is needed, but not found on this entity.
at org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter.write(MappingCouchbaseConverter.java:316)
at org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter.write(MappingCouchbaseConverter.java:50)
at org.springframework.data.couchbase.core.CouchbaseTemplate.save(CouchbaseTemplate.java:298)
at org.springframework.data.couchbase.core.CouchbaseTemplate.save(CouchbaseTemplate.java:149)
at org.springframework.data.couchbase.repository.support.SimpleCouchbaseRepository.save(SimpleCouchbaseRepository.java:82)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.executeMethodOn(RepositoryFactorySupport.java:358)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:343)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.data.couchbase.repository.support.ViewPostProcessor$ViewInterceptor.invoke(ViewPostProcessor.java:80)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy18.save(Unknown Source)
at com.spring.data.couchbase.user.MyService.doWork(MyService.java:27)
at com.spring.data.couchbase.user.Main.main(Main.java:17)
EN

回答 4

Stack Overflow用户

发布于 2014-05-22 16:31:10

正如作者所回答的,您需要一个不为空的ID,因为Couchbase本身通过其唯一的ID来标识每个文档。您应该在您的ID之上添加验证,以确保它始终不为空。

票数 1
EN

Stack Overflow用户

发布于 2016-10-05 23:20:16

我认为问题有以下几点:

1:您的类上有@Entity注释,这是一个JPA注释。改用org.springframework.data.couchbase.core.mapping.Document注解

2: CouchBase存储名为_id的in,因此您应该将类中的字段重命名为_id (根据http://developer.couchbase.com/documentation/mobile/current/develop/guides/couchbase-lite/native-api/document/index.html#special-properties)

票数 1
EN

Stack Overflow用户

发布于 2018-10-14 19:29:51

您可以使用以下内容

代码语言:javascript
复制
import com.couchbase.client.java.repository.annotation.Field;
import com.couchbase.client.java.repository.annotation.Id;

@Id
@GeneratedValue(strategy = GenerationStrategy.UNIQUE)
public String id;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22858339

复制
相关文章

相似问题

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