Java – Outdomain classes do not have an id field

Outdomain classes do not have an id field… here is a solution to the problem.

Outdomain classes do not have an id field

I’m getting an error in the entity below (probably because of a one-to-many relationship), but I don’t know how to fix this.

Class:

@ForeignCollectionField(eager = true)
Collection<Grade> grades;

@DatabaseField(columnName = "ID", canBeNull = false)
private long id;

@DatabaseField(columnName = "LABEL", canBeNull = false)
private String label;

@DatabaseField(columnName = "COEFFICIENT", canBeNull = false, defaultValue = "1")
private float coefficient;

Grade:

@DatabaseField(columnName = "ID_COURSE", canBeNull = false, foreign = true, foreignAutoRefresh = true)
Course course;

@DatabaseField(columnName = "ID", canBeNull = false)
private long id;

@DatabaseField(columnName = "DATE", canBeNull = false)
private Date date;

@DatabaseField(columnName = "GRADE", canBeNull = false, defaultValue = "1")
private float grade;

When you start an application and try to get data from a database:

Foreign field class Course does not have id field

Solution

The class class must have an id field

@DatabaseField(generatedId = true, columnName = "ID")
Long id;

Or set your existing field ID to id:

@DatabaseField(id = true, columnName = "ID", canBeNull = false)
private long id;

Related Problems and Solutions