在我的代码我把一些基础领域中的抽象基类BaseEntity
:继承的实体,使用objectbox
public abstract class BaseEntity {
@Id
private long id;
public BaseEntity() {
}
public BaseEntity(long id) {
this.id = id;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
}
所以,在子类中User
我不定义id
场:
@Entity
public class User extends BaseEntity {
private String name;
private String login;
private String gender;
private String email;
private String phoneNumber;
private Date registrationDate;
private Date lastActivityDate;
private long systemId;
public User() {
}
...Getters and Setters
}
因为它在超类中定义,因此它是
。我不想在每个班级创建一个id
字段,并且不希望在数据库BaseEntity
类中坚持。我得到一个错误: Error:[ObjectBox] Code generation failed: No ID property found for Entity User (package:...)
我如何使用继承的objectbox?
没有工作。它似乎像objectbox只允许POJO ... –
是的,你是对的。 Objectbox将每个实体视为db中的一个表。因此它会将每个实体转换为db中的一个表,并且要做到这一点,它需要一个id列来标识该表中的每一行,因此它需要每个实体都有@Id变量。 –
使用Objectbox时,必须首先设计DataBase和它必须具有的表,然后为每个表创建一个实体。这样你就不会有这样的困惑。 –