Допустим, у меня есть две сущности ниже:
@Entity
public class Employee {
String name;
@ManyToOne Department department;
}
@Entity
public class Department {
// persisted flieds ...
@OneToMany(mappedBy="department") Collection<Employee> employees;
}
и соответствующие им таблицы определены в двух разных схемах oldSchema и newSchema с различным содержаниемкак это:
- oldschema.Department, oldSchema.Employee
- newSchema.Department, newSchema.Employee
Я работаю с newSchema , я пытаюсь извлечь объект сущности Department из oldSchema с его коллекцией Employee из oldSchema.
То, что я получаю, это объект Department из oldSchema, но сКоллекция Employee от newSchema.
Код, который я использую:
Query q = entityManager.createNativeQuery("SELECT * FROM
oldSchema.Department d where d.departmentID = ?", Department.class);
q.setParameter(1, depID);
try{
Department d = (Department) q.getSingleResult();
}catch(exception){}
объект d содержит коллекцию Employees, которая хранится в newSchema.Employee
И это из-за автоматической эволюции схемы , как описано здесь для ObjectDB https://www.objectdb.com/java/jpa/entity/schema, которая в моем случае выглядит так же, как и для EclipseLink, поправьте меня, если я пишуong.
Я буду признателен за вашу помощь!