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));