首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Avaje - EBean -部分对象查询禁用延迟加载

Avaje - EBean -部分对象查询禁用延迟加载
EN

Stack Overflow用户
提问于 2013-08-15 02:37:39
回答 2查看 1.4K关注 0票数 2

我正在用Play开发一个应用程序!Framework2.1.3,使用EBean作为模型层,我希望能够执行部分对象查询,而不是在我序列化到JSON准备将结果发送回用户时按需加载未选择的属性。

我尝试将AutoFetch设置为false,还尝试在序列化到JSON之前结束事务(最后得到一个事务是非活动错误),我还在模型类中添加了注释@Lazy(false)

同样,我也有一个一对多的关联,我想查询它的前3行,我使用了new FetchConfig().queryFirst(2),但是我猜由于同样的延迟加载问题,我最终得到了所有相关的关联行。

看看手册,我读了这个(EBean部分对象):

当您获得或设置一个不具有的属性时,部分对象将根据需要延迟加载其余的数据。

有什么办法可以绕过这件事吗?我尝试过的一切似乎都没有用!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-24 22:54:51

我通过使用标准的JDBC接口(使用StatementsResultSets )来解决这个问题,而这些查询是我不需要延迟加载的。

顺便指出的是,在Scala的情况下,直接字段访问并不使用延迟加载,但不幸的是,它不是我在应用程序中使用的语言。

票数 0
EN

Stack Overflow用户

发布于 2015-07-29 15:50:11

你有两个选择。

选项1)使用Ebean内置的JSON支持,该支持在幕后使用杰克逊核心。Ebean的JsonContext提供了许多编写器选项。

一个同时应用于查询和JSON的PathProperties示例。

代码语言:javascript
运行
AI代码解释
复制
PathProperties pathProperties =
        PathProperties.parse("(id,status,name,shippingAddress(id,line1,city),billingAddress(*),contacts(*))");

List<Customer> customers = Ebean.find(Customer.class)
    .apply(pathProperties)
    .findList();

String jsonString = Ebean.json().toJson(customers, pathProperties);

选项2)是6.2.2版本中的一个新特性,您可以在其中对查询进行setDisableLazyLoading(true)。

参考资料:https://github.com/ebean-orm/avaje-ebeanorm/issues/360

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18250976

复制
相关文章
【Kotlin】Kotlin 构造函数 ( 主构造函数 | 主构造函数声明属性 | init 初始化代码块 | 次构造函数 | 构造函数委托 | 调用构造函数创建实例对象 )
1 . 构造函数个数 : Kotlin 类定义时需要指定主构造函数 , 还可以指定 0 ~ 多个次构造函数 ;
韩曙亮
2023/03/27
4.3K0
【C++】构造函数调用规则 ( 默认构造函数 | 默认无参构造函数 | 默认拷贝构造函数 | 构造函数调用规则说明 )
如果 C++ 类中 没有定义构造函数 , C++ 编译器会自动为该类提供一个 " 默认的无参构造函数 " , 函数体为空 , 不做任何操作 ;
韩曙亮
2023/10/15
1.4K0
【C++】构造函数调用规则 ( 默认构造函数 | 默认无参构造函数 | 默认拷贝构造函数 | 构造函数调用规则说明 )
dotnet C# 只创建对象不调用构造函数方法
有时我期望只是创建出对象,但是不要调用对象的构造方法,可以通过使用 FormatterServices 的 GetUninitializedObject 函数来实现只创建对象不调用构造函数方法
林德熙
2021/12/24
8600
java构造函数调用另一个构造函数_java中的构造函数
* 构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法
用户7886150
2021/04/29
4.7K0
JAVA & .NET创建对象构造函数调用顺序
基类静态初始化块——当前类静态初始化块——基类初始化块——基类构造函数——当前类初始化块——当前类构造函数
雪飞鸿
2019/03/08
1.1K0
虚函数中构造函数的调用顺序
1 /*曾经有段时间一直被构造函数中的虚函数所困扰,现在通过自己重新学习了一遍,标注一下容易忘记的知识*/ 2 #include<iostream> 3 using namespace std; 4 class Base0 5 { 6 public: 7 Base0(int var):var0(var) 8 { 9 cout<<"Construct base0"<<endl; 10 } ; 11 int var0; 12 void fun()
Gxjun
2018/03/22
3.7K0
虚函数中构造函数的调用顺序
【C++】构造函数意义 ( 构造函数显式调用与隐式调用 | 构造函数替代方案 - 初始化函数 | 初始化函数缺陷 | 默认构造函数 )
C++ 提供的 构造函数 和 析构函数 作为 类实例对象的 初始化 和 销毁 方案 ;
韩曙亮
2023/10/15
9360
【C++】构造函数意义 ( 构造函数显式调用与隐式调用 | 构造函数替代方案 - 初始化函数 | 初始化函数缺陷 | 默认构造函数 )
【C++】构造函数分类 ① ( 构造函数分类简介 | 无参构造函数 | 有参构造函数 | 拷贝构造函数 | 代码示例 - 三种类型构造函数定义与调用 )
无参构造函数 : 只负责为指针类型的成员变量分配内存 , 并赋值一个初始值 , 没有具体的赋值信息 , 该初始化只能为 成员变量 赋值一个默认值 ;
韩曙亮
2023/10/15
5270
【C++】构造函数分类 ① ( 构造函数分类简介 | 无参构造函数 | 有参构造函数 | 拷贝构造函数 | 代码示例 - 三种类型构造函数定义与调用 )
java构造函数方法声明无效_如何构造函数
Java构造函数,也叫构造方法,是JAVA中一种特殊的函数。与函数名相同,无返回值。
全栈程序员站长
2022/10/05
1.7K0
C++构造函数 | 构造函数
C++在建立一个对象时,常常需要作某些初始化,如果一个数据成员未被赋值,则它的值是不可预知的,因为在系统为它分配内存时,保留了这些存储单元的原状,这就成为了这些数据成员的初始值,在C++中,对象是一个实体,它反映了客观事物的属性,是应该有确定的值的。
小林C语言
2021/01/26
2.3K0
C++构造函数 | 构造函数
js 中的构造函数,构造函数作用,构造函数和普通函数的区别
函数的定义方式: 1.声明式函数定义: function 函数名 (){};这种定义方式,会将函数声明提升到该函数所在作用域的最开头,也是就无论你在这个函数的最小作用域的那儿使用这种方式声明的函数,在这个作用域内,你都可以调用这个函数为你所用。 2.函数表达式:let fun = function(){}; 此方式定义的函数,只能在该作用域中,这段赋值代码执行之后才能通过fun()调用函数,否则,由于变量声明提升,fun === undefined。 3.new Function 形式: var fun1 = new Function (arg1 , arg2 ,arg3 ,…, argN , body );Function构造函数所有的参数都是字符串类型。除了最后一个参数, 其余的参数都作为生成函数的参数即形参。这里可以没有参数。最后一个参数, 表示的是要创建函数的函数体。
全栈程序员站长
2022/10/04
3.6K0
通过工厂函数、构造函数创建对象
当我们有多个变量的结构非常类似时,如下所示,反复书写结构过于麻烦,我们可以定义一个工厂函数来创建对象
很酷的站长
2022/12/21
8210
通过工厂函数、构造函数创建对象
禁止在构造函数里调用虚函数
在构造函数中调用虚函数会导致程序出现莫名其妙的行为,这主要是对象还没有完全构造完成。下面我们先来看一段代码:
喵叔
2020/09/08
1.7K0
【说站】javascript new如何调用构造函数
以上就是javascript new调用构造函数,希望对大家有所帮助。更多Javascript学习指路:Javascript
很酷的站长
2022/11/23
1.3K0
【说站】javascript new如何调用构造函数
Java构造函数调用顺序问题
今天对Java的构造函数调用顺序进行研究,使用的是与C++类似的方法,即不对源码进行研究,而是直接通过打印代码对构造函数的调用顺序进行研究。
用户7886150
2021/04/20
1.1K0
Java构造函数调用顺序问题
今天对Java的构造函数调用顺序进行研究,使用的是与C++类似的方法,即不对源码进行研究,而是直接通过打印代码对构造函数的调用顺序进行研究。
全栈程序员站长
2022/06/28
7490
Groovy 元组构造函数创建
Groovy 1.8添加了@TupleConstructor注释。 通过这个注释,我们可以在编译时自动创建一个元组构造函数。 因此构造函数可以在编译的类中找到。 对于类中的每个属性,将使用默认值创建构造函数中的参数。 类中定义的属性的顺序还定义了构造函数中参数的顺序。 因为参数具有默认值,所以我们可以使用Groovy语法,并在使用构造函数时将参数留在参数列表的末尾。
白石
2019/09/18
1.3K0
【C++】构造函数与析构函数概念简介 ( 构造函数和析构函数引入 | 构造函数定义与调用 | 析构函数定义与调用 | 代码示例 )
在 C++ 语言中 , 创建对象时 , 需要进行对象创建的初始化工作 , 如 : 创建集合数组 , 为成员变量设置初始值 ;
韩曙亮
2023/10/15
3980
【C++】构造函数与析构函数概念简介 ( 构造函数和析构函数引入 | 构造函数定义与调用 | 析构函数定义与调用 | 代码示例 )
小朋友学C++(10):子类构造函数调用父类构造函数
从哲学层面来看,子类会继承父类除private以外的所有成员。 因为构造函数是公有的,所以理所当然地会被子类继承。 程序1: #include <iostream> using namespace std; class Shape { public: Shape() { cout << "Shape's constructor method is invoked!\n"; } }; class Rectangle : public Shape { public:
海天一树
2018/04/17
1.5K0
【C++】构造函数初始化列表 ⑤ ( 匿名对象 生命周期 | 构造函数 中 不能调用 构造函数 )
下面的代码中 , 在 fun 函数中 , 调用 Student(18, 180) 代码 , 创建 Student 类型的匿名对象 , 匿名对象的生命周期 只存在于 这一行代码 , 该行代码执行完毕后 , 匿名对象 就会被 析构 ;
韩曙亮
2023/10/15
2770
【C++】构造函数初始化列表 ⑤ ( 匿名对象 生命周期 | 构造函数 中 不能调用 构造函数 )

相似问题

C++大父级默认构造函数调用

13

调用多个构造函数--只调用同一个构造函数?

40

从构造函数调用构造函数

24

构造函数调用其他构造函数。

10

从动态创建的子构造函数调用父构造函数

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档