Home > database >  Java SpringBootTest EntityNotFoundException on setup method
Java SpringBootTest EntityNotFoundException on setup method

Time:04-09

There is a class for test to save some constraints, there is method setup with @Before annotation, where test data is saved in database:

.. And when running the test in this method, there is an EntityNotFoundException error when saving Entity to the repository:

    
    . . .

    @Autowired
    EntityFeatureConfigRepository entityFeatureConfigRepository;

    @Autowired
    FeatureRepository featureRepository;

    @Autowired
    EntityRepository entityRepository;

    @Before
    public void setup() {
        entityRepository.deleteAll();
        featureRepository.deleteAll();
        entityFeatureConfigRepository.deleteAll();
        
        featureRepository.save(new Feature(1);                    <==== 1L - id 
        entityRepository.save(new Entity(1));
        entityFeatureConfigRepository.save(new EntityFeatureConfig( <=EXCEPTION
                new Feature(1),          
                new Entity(1),
                true));
    }
    . . .

Unable to find Entity with id 1; nested exception is javax.persistence.EntityNotFoundException: Unable to find Entity with id 1

The error is that Entity does not exist, although it is saved in the setup method

If there are such fields in the class EntityFeatureConfig, maybe the problem is in them.

    @Id
    @ManyToOne
    @ToString.Exclude
    @JsonIgnore
    @JoinColumn(name = "feature_id", referencedColumnName = "id")
    private Feature feature;

    @Id
    @ManyToOne
    @ToString.Exclude
    @JoinColumn(name = "entity_id", referencedColumnName = "id")
    private Entity entity;

And Entity

    @OneToMany(fetch = FetchType.EAGER, mappedBy = "entity")
    @EqualsAndHashCode.Exclude
    @JsonIgnore
    private Set<UserManagingEntity> user;

What can this error be related to, that the data is not in the repository?

CodePudding user response:

try to use returned objects from save method instead of create new ones Feature f = featureRepository.save(new Feature(1);
Entity e = entityRepository.save(new Entity(1));

  • Related