Spring MongoRepository is Null

Sami

I have the following code which attempts to save a POJO object (Actor) into MongoDB using Spring Mongo Repository, but the repository object is always Null. I have followed multiple examples but mainly this one

The POJO class:

@Document(collection = "actors")
public class Actor 
{
  @Id
  private String id;
  ...
  //constructor
  //setters & getters
}

The repository:

public interface ActorRepository extends MongoRepository<Actor, String> 
{
  public Actor findByFNameAndLName(String fName, String lName);
  public Actor findByFName (String fName);
  public Actor findByLName(String lName);
}

The service that uses the repository:

@Service
public class ActorService 
{
  @Autowired
  private ActorRepository actorRepository;

  public Actor insert(Actor a)
  {
    a.setId(null);
    return actorRepository.save(a);
  }
} 

And I access the service from a REST controller class:

@RestController
public class Controllers 
{

  private static final Logger logger = Logger.getLogger(Controllers.class);
  private static final ApplicationContext ctx = new  AnnotationConfigApplicationContext(SpringMongoConfig.class);

  private ActorService actorService = new ActorService();

  @RequestMapping(value="/createActor", method=RequestMethod.POST)
  public @ResponseBody String createActor(@RequestParam(value = "fName") String fName,
        @RequestParam(value = "lName") String lName,
        @RequestParam(value = "role") String role)
  {
    return actorService.insert(new Actor(null,fName,lName,role)).toString();

  }

 ...
}

The error that I get is NullPointerException from this line: return actorRepository.save(a); in the ActorService.insert() method.

Any Idea why is this happening?

EDIT: Here is the Spring Configurations

@Configuration
public class SpringMongoConfig extends AbstractMongoConfiguration
{ 
    @Bean
    public GridFsTemplate gridFsTemplate() throws Exception 
    {
        return new GridFsTemplate(mongoDbFactory(), mappingMongoConverter());
    }

    @Override
    protected String getDatabaseName() 
    {
        return "SEaaS";
    }

    @Override
    @Bean
    public Mongo mongo() throws Exception 
    {
        return new MongoClient("localhost" , 27017 );
    }

    public @Bean MongoTemplate mongoTemplate() throws Exception 
    {
        return new MongoTemplate(mongo(), getDatabaseName());
    }    
}
geoand

The problem is that you are not using Spring to get the ActorService dependency -instead you have manually instantiated the dependency using

private ActorService actorService = new ActorService();.

The following code is the easiest fix in order to inject the ActorService dependency into the controller.

@RestController
public class Controllers 
{

  private static final Logger logger = Logger.getLogger(Controllers.class);
  private static final ApplicationContext ctx = new  AnnotationConfigApplicationContext(SpringMongoConfig.class);

  @Autowired 
  private ActorService actorService;

  @RequestMapping(value="/createActor", method=RequestMethod.POST)
  public @ResponseBody String createActor(@RequestParam(value = "fName") String fName,
        @RequestParam(value = "lName") String lName,
        @RequestParam(value = "role") String role)
  {
    return actorService.insert(new Actor(null,fName,lName,role)).toString();

  }

 ...
}

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

Autowire MongoRepository in Spring MVC

Java Spring : MongoRepository count() and findAll()

Spring Boot MongoRepository ignoring validation

Spring MongoRepository, where to catch the exception?

Resolve variable name for MongoRepository in Spring

MongoRepository JSON Date Query (Spring)

Spring Data MongoRepository between for int values

Spring MongoRepository is updating or upserting instead of inserting

could not found bean for MongoRepository (Spring Boot)

findByParentIdDeletedIsFalse like query in Spring Boot MongoRepository

Spring MongoRepository query adding _class field to queries

Spring MongoRepository very slow to convert POJO

Spring data mongorepository, find by inner object field

Spring Data Mongodb & Spring Boot - autowiring MongoRepository from Mongolab

Keep reference data in application memory in spring application (spring MongoRepository)

Spring Data MongoRepository save(T) not working... sometimes

Custom @Query annotated method for update query with spring data MongoRepository

Custom @Query annotated method for update query with spring data MongoRepository

Spring Data- MongoRepository : Can we have binary type as the _id?

What's the difference between Spring Data's MongoTemplate and MongoRepository?

Spring Data MongoRepository Saving Objects with Differing Numbers of Fields

Spring CLI [v2.2.3.RELEASE] with MongoRepository : org.springframework.beans.factory.UnsatisfiedDependencyException

Fetching all Mongo documents based on different combinations of values of same query parameters using Spring MongoRepository

MongoRepository Find List in Array

MongoRepository query for between dates

Find a DocumentObject in mongoRepository

MongoShell query to MongoRepository

Query for mongoRepository list

MongoRepository dynamic queries

TOP Ranking

  1. 1

    Failed to listen on localhost:8000 (reason: Cannot assign requested address)

  2. 2

    Loopback Error: connect ECONNREFUSED 127.0.0.1:3306 (MAMP)

  3. 3

    How to import an asset in swift using Bundle.main.path() in a react-native native module

  4. 4

    pump.io port in URL

  5. 5

    Compiler error CS0246 (type or namespace not found) on using Ninject in ASP.NET vNext

  6. 6

    BigQuery - concatenate ignoring NULL

  7. 7

    ngClass error (Can't bind ngClass since it isn't a known property of div) in Angular 11.0.3

  8. 8

    ggplotly no applicable method for 'plotly_build' applied to an object of class "NULL" if statements

  9. 9

    Spring Boot JPA PostgreSQL Web App - Internal Authentication Error

  10. 10

    How to remove the extra space from right in a webview?

  11. 11

    java.lang.NullPointerException: Cannot read the array length because "<local3>" is null

  12. 12

    Jquery different data trapped from direct mousedown event and simulation via $(this).trigger('mousedown');

  13. 13

    flutter: dropdown item programmatically unselect problem

  14. 14

    How to use merge windows unallocated space into Ubuntu using GParted?

  15. 15

    Change dd-mm-yyyy date format of dataframe date column to yyyy-mm-dd

  16. 16

    Nuget add packages gives access denied errors

  17. 17

    Svchost high CPU from Microsoft.BingWeather app errors

  18. 18

    Can't pre-populate phone number and message body in SMS link on iPhones when SMS app is not running in the background

  19. 19

    12.04.3--- Dconf Editor won't show com>canonical>unity option

  20. 20

    Any way to remove trailing whitespace *FOR EDITED* lines in Eclipse [for Java]?

  21. 21

    maven-jaxb2-plugin cannot generate classes due to two declarations cause a collision in ObjectFactory class

HotTag

Archive