首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mongoDB hibernate-ogm (5.4.1)删除实体保留_id字段

mongoDB hibernate-ogm (5.4.1)删除实体保留_id字段
EN

Stack Overflow用户
提问于 2021-06-21 18:39:13
回答 1查看 58关注 0票数 0

我使用hibernate-ogm和数据来保存和删除mongoDB中的一个简单实体。

拯救是有效的。但是删除一个实体,空除_id以外的所有字段。

代码语言:javascript
复制
@Entity
public class MyEntity implements Serializable {

    @Id
    @GeneratedValue(generator = "uuid")
    @GenericGenerator(name = "uuid", strategy = "uuid2")
    private String id;

    @NotNull
    private String name;

    @Version
    private Integer version;

    @ElementCollection
    private Map<String, String> myMap;

    public MyEntity() {
    }

    public String getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Map<String, String> getMyMap() {
        return myMap;
    }

    public void setMyMap(Map<String, String> myMap) {
        this.myMap = myMap;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

}

正确保存在mongodB中

代码语言:javascript
复制
> db.MyEntity.find().pretty()
{
    "_id" : "b359df37-d108-46c7-8c30-ae14c4064e00",
    "name" : "my entity name",
    "version" : 0,
    "myMap" : {
        "key1" : "value1",
        "key2" : "value2"
    }
}

实体不能使用hibernate-ogm和Deltaspike数据myRepository.attachAndRemove(myEntity)方法“完全”删除。除"_id“外,所有字段都将被移除。

代码语言:javascript
复制
> db.MyEntity.find().pretty()
{ "_id" : "b359df37-d108-46c7-8c30-ae14c4064e00" }

但是,如果我不使用@Version,实体就会被完全删除。

对这个行为/问题的任何解释都是值得欢迎的。

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2021-06-22 19:12:14

它似乎是Hibernate OGM中的一个bug。

解决办法:

代码语言:javascript
复制
 EntityTransaction tx = em.getTransaction();
 tx.begin();
 em.createNativeQuery("db.MyEntity.remove({_id:\"" + entity.getId() + "\"})").executeUpdate();
  tx.commit();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68073127

复制
相关文章

相似问题

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