Прежде всего: я очень новичок в Spring, поэтому мне жаль, если я не могу предоставить всю информацию, необходимую для вопроса. Моя проблема заключается в следующем: у меня есть следующий класс, какие объекты я хочу сохранить в mongoDB
public class Subscription implements Serializable {
private String type;
private InetSocketAddress host;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public InetSocketAddress getHost() {
return host;
}
public void setHost(InetSocketAddress host) {
this.host = host;
}
public Subscription(){}
Я делаю это, просто определяя интерфейс репозитория и автоматически подключая его к моему приложению (которое отлично работает для другого хранилище)
public interface SubscriptionRepository extends MongoRepository<Subscription, String> {
}
Я могу сохранить объекты подписки в хранилище, но чтение их в List<Subscription>
через SubscriptionRepository.findall()
дает мне ошибку
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.net.InetSocketAddress]: No default constructor found; nested exception is java.lang.NoSuchMethodException: java.net.InetSocketAddress.<init>()
Просмотр базы данных InetSocketAddress объект сохраняется довольно странно
{ "_id" : ObjectId("5e1a48f4a6e30c7d2089e5cd"), "type" : "test", "host" : { "holder" : { "addr" : { "holder" : { "address" : 174417169, "family" : 1 }, "_class" : "java.net.Inet4Address" }, "port" : 0 } }, "_class" : "com.example.myproject.Subscription" }
Что мне нужно изменить, чтобы сохранить поле InetSocketAddress таким образом, чтобы я мог правильно извлечь объект подписки из базы данных?
Заранее спасибо