I keep getting the error:
Error creating bean with name 'category' defined in file [/home/dazikiri_anikar/IdeaProjects/shop/target/classes/pl/shop/models/Category.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [pl.shop.models.Category]: No default constructor found; nested exception is java.lang.NoSuchMethodException: pl.shop.models.Category.<init>()
Here is the class that Spring has a problem with:
package pl.shop.models;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Component
public enum Category {
HEALTHY_FOOD,
JUNK_FOOD,
TEAS_AND_COFFEES,
SPICES,
GRAINS_AND_LENTILS,
NUTS_AND_SEEDS,
DRIED_FRUITS,
SNACKS,
DRINKS;
private String categoryName;
List<Product> productList = new ArrayList<>();
}
All the answers I am finding are... to define a default constructor. Which... is right there, the @NoArgsConstructor from Lombok, right? And even if I remove this and define it myself, it doesn't change a thing.
I tried defining both constructors (no args and all args) myself to no avail and then added @Autowired which resulted in an error that there is not 'String' bean which makes me absolutely clueless at this stage.
Please, help.
In Java, Enum only has private constructors. Hence can’t be instantiated by Spring