Я пытаюсь создать приложение Morphia
и Spring
, используя шаблон из другого проекта, и получаю следующую ошибку
Variable 'assetRepository' might not have been initialized
AssetRepository
- это интерфейс
package code.nithin.repository;
import code.nithin.entity.Asset;
import org.mongodb.morphia.Key;
public interface AssetRepository {
public Key<Asset> save(Asset asset);
}
и AssetController
равно
package code.nithin.controllers;
import code.nithin.entity.Asset;
import code.nithin.repository.AssetRepository;
import org.mongodb.morphia.Key;
public class AssetController{
public String saveAsset(String URL){
AssetRepository assetRepository;
Asset test = new Asset(1, System.currentTimeMillis(),"https://example.com");
String returnString = assetRepository.save(test).getId();
}
}
Сущность
package code.nithin.entity;
import org.bson.types.ObjectId;
import org.mongodb.morphia.annotations.Entity;
import org.mongodb.morphia.annotations.Id;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Entity("asset")
@NoArgsConstructor
public class Asset {
@Id
public ObjectId _id;
public int version;
public long timestamp;
public String URL;
public Asset(){}
public Asset(int version, long timestamp, String URL) {
this.version = version;
this.timestamp = timestamp;
this.URL = URL;
}
public ObjectId get_id() {
return _id;
}
public void set_id(ObjectId _id) {
this._id = _id;
}
public int getVersion() {
return version;
}
public void setVersion(int version) {
this.version = version;
}
public long getTimestamp() {
return timestamp;
}
public void setTimestamp(long timestamp) {
this.timestamp = timestamp;
}
public String getURL() {
return URL;
}
public void setURL(String URL) {
this.URL = URL;
}
}
Проект, о котором я говорю, реализует то же, что и
@Bean
public CommandLineRunner init(AssetRepository assetRepository){
return (args) -> {
Asset test = new Asset(1, 123456789632541 ,"https://example.com");
System.out.println(assetRepository.save(test).getId());
};
}
Проект, на который я ссылаюсь, не выдает ошибку.
трассировка стека
Error:(19, 28) java: variable assetRepository might not have been initialized
Error:(21, 5) java: missing return statement
/home/signzy/code/java/cubereum/boilerplate/src/main/java/code/cubereum/controllers/AssetController.java
Information:javac 1.8.0_181 was used to compile java sources
Information:1/9/18 2:58 PM - Compilation completed with 2 errors and 0 warnings in 1 s 730 ms
Information:java: Errors occurred while compiling module 'boilerplate_main'