كيف وقف عمق الانضمام السبات في استعلام?
-
21-12-2019 - |
سؤال
مرحبا لدي هذا 3 صف دراسي:
public class A{
@ManyToOne
@JsonIgnore
private B b;
.....
}
public class B{
@OneToOne
@JsonIgnore
private C c;
.....
}
public class C{
.....
}
لدي findById(id)
على بلدي A
الطبقة ، والسبات القيام الانضمام إلى B
الطبقة ، وأنها تفعل آخر الانضمام إلى C
صف دراسي.
لكنني لست بحاجة إلى الحصول على حقول فئة ج, لذلك يمكنني أن أفعل??
يعطيكم الصّحة
المحلول 2
أنا حلها كما اقترح:
أضيف @OneToOne(fetch = FetchType.LAZY)
لأن بلدي المقدمة ليست إلزامية..
نصائح أخرى
يمكنك محاولة تعيين max_fetch_depth
خاصية السبات إلى قيمة بشكل صحيح.
من وثائق السبات:
يحدد "العمق" الأقصى لشجرة جلب الوصلة الخارجية للجمعيات أحادية الطرف (واحد لواحد ، متعدد لواحد).يقوم 0 بتعطيل جلب الانضمام الخارجي الافتراضي.على سبيل المثال.القيم الموصى بها بين 0 و 3.
لكن ضع في اعتبارك أن هذا سيؤثر على مشروعك بالكامل.
لا تنتمي إلى StackOverflow