HibernateセッションからプルするUserオブジェクトがあります。Userオブジェクトには、私が取得してJSONに変換しているCarオブジェクトのセットがあります。問題は、JSONに変換するためにSetを返すと、休止状態のセッションがまだアクティブであるために、解析の無限ループに入っているように見えることです。
コードは次のようになります。
public Set<Car> getUserCurrentCar(User user) {
user = (User) session.get(User.class, user.getId());
Set<Car> retrievedCars = (Set<Car>) user.getCars();
session.close();
return retrievedCars;
}
ただし、セッションなしでオブジェクト値をオブジェクトに移動すると、すべてがエラーなしで正常に解析されます。
public Set<Car> getUserCurrentCar(User user) {
user = (User) session.get(User.class, user.getId());
Set<Car> Cars = new HashSet<Car>();
Set<Car> retrievedCars = (Set<Car>) user.getCars();
for(Car Car :retrievedCars){
Car newCar = new Car();
newCar.setTitle(car.getTitle());
cars.add(newCar);
}
session.close();
return cars;
}
これは機能しますが、将来的にはオブジェクトを変更し、繰り返しのように見えるオブジェクトの転送をすべて回避したいと思います。
さらに、私のCarオブジェクトには、休止状態のマッピングでUserへの多対1の後方参照があります。
<many-to-one name="user"
column="userId"
not-null="true"/>
どうすればこれを回避し、真に分離されたオブジェクトを使用してJSONに解析できますか?