Объектно-реляционное сопоставление с Json вместо базы данных - PullRequest
0 голосов
/ 23 октября 2018

У меня есть 3 класса:

class Employee{ 
  int id;
  String lastName;
  String firstName;
  Department department; //an employee has 1 department
}

class Department{
  int id;
  String name;
  List<Employee> employees;
}

class AllData{
   List<Employee> employees;
   List<Department> departments;
}

Мне бы хотелось, чтобы маршалл класса AllData был преобразован в json, но в отличие от обычного инструмента маршаллинга, такого как Джексон, я бы хотел, чтобы данные были нормализованы.и легко редактируемые, например:

{
       "employees":[
         {id: 101, "lastName":"Smith", "firstName": "John", "departmentId": 201},
         {id: 102, "lastName":"Jones", "firstName": "Jill", "departmentId": 201},
       ]
       "departments":[
        {"id": 201, "name":"accounting"},
        {"id": 202, "name":"sales"},
       ]
 }

Обратите внимание, что JSON записывается без повторения данных.Например, только Employee ID записывается в Employee, а не весь объект Department.И Департамент не выписывает объект сотрудникам, потому что это будет повторяться.Это позволяет пользователю быстро редактировать json, что отлично подходит для тестирования, где мы быстро хотим иметь возможность просматривать и изменять объекты.У нас есть все эти сценарии с разными сотрудниками и отделами, и если бы мы могли легко редактировать и просматривать их в тексте, это было бы здорово для тестирования.В некотором смысле нам нужен инструмент объектно-реляционного отображения, такой как Hibernate, но вместо перехода от объекта к базе данных я хочу перейти от объекта к редактируемому текстовому формату (предпочтительнее json).Теоретически, Hiberate дает нам это, когда записывает операторы SQL, но SQL гораздо хуже, чем json для просмотра и редактирования.Если я подхожу к этой проблеме неправильно, пожалуйста, дайте мне знать.

...