首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SugarORM中设置主键

如何在SugarORM中设置主键
EN

Stack Overflow用户
提问于 2015-10-04 11:10:21
回答 5查看 4K关注 0票数 4

我第一次使用SugarORM,我有一个简短的问题。如何将一个实体设置为主键?例如,我需要这样的东西:

代码语言:javascript
复制
public class Student{
    @PrimaryKey
    private String studentId;
    private String name;
}

有可能吗?谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-01-22 18:53:27

目前无法指定主键。但是,从糖1.4开始,有一个选项可以使用@Unique属性(https://github.com/satyan/sugar#sugarrecord):

代码语言:javascript
复制
public class Book extends SugarRecord {
    @Unique
    String isbn;
    String title;
    String edition;
    /*...*/
    public Book(String isbn, String title, String edition) {
        this.isbn = isbn;
        this.title = title;
        this.edition = edition;
    }
}

它不是主键,但在许多情况下它执行类似的工作(https://github.com/satyan/sugar#update-entity-based-on-unique-values):

代码语言:javascript
复制
Book book = new Book("isbn123", "Title here", "2nd edition")
book.save();

// Update book with isbn123
Book sameBook = new Book("isbn123", "New Title", "5th edition")
sameBook.update();

book.getId() == sameBook.getId();
票数 7
EN

Stack Overflow用户

发布于 2015-10-04 11:22:59

显然你不能用糖ORM做这个。他们网站上的文档没有提到主键,甚至没有这样的注释。您应该考虑改用OrmLite,这是我个人推荐的,而且众所周知,它可以很好地使用安卓系统。

orm.shtml

票数 1
EN

Stack Overflow用户

发布于 2017-06-01 18:10:36

我太努力了。

最后,我得到了答案.

代码语言:javascript
复制
Book.deleteAll(Book.class);
book=new Book(user, pass);
book.setId(Long.valueOf(book.listAll(Book.class).size()));
book.save();

此代码类似于删除和重新创建table.and重置id。重要:在工作中,糖或在安卓工作室必须禁用即时运行。祝好运

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

https://stackoverflow.com/questions/32932808

复制
相关文章

相似问题

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