我有一个实体课
class B{
@ManyToOne(fetch = FetchType.EAGER)
private A a;
@ManyToOne(fetch = FetchType.LAZY)
private C c;
}
在某些情况下,我不想加载对象A,因为我已经有了该对象。对于C也是如此。但是这些是特定的场景,我根本不想加载那些对象。
有什么方法可以告诉Hibernate不要加载实体对象的某些属性。{没有渴望/获取建议。我只希望仅在特定情况下才发生这种情况]
注意:我现在使用Criteria来获取对象。
由于HQL
用于查询,因此可以在运行时根据条件使用“
fetch”关键字指定获取策略,如下所示:
List result = sess.createCriteria(B.class)
.add( Restrictions.like("name", "yourcondition%") )
.setFetchMode("a", FetchMode.EAGER)
.setFetchMode("c", FetchMode.LAZY)
.list();
编辑:
由于不建议使用FetchMode.EAGER和FetchMode.LAZY,因此FetchMode.SELECT或FetchMode.JOIN
List result = sess.createCriteria(B.class)
.add( Restrictions.like("name", "yourcondition%") )
.setFetchMode("a", FetchMode.JOIN)
.setFetchMode("c", FetchMode.SELECT)
.list();
问题内容: 我有一个JSON: 我试图删除所有以 “ umb_” 开头的属性。这在json.net中可能吗? 输出将是这样的: 使用删除我能够做到,但是不能一次全部完成。 有什么建议吗? 问题答案: 您可以先解析字符串: 更新 或: 更新#2 您可以在子句中指定更多条件: 要么 或任何您需要的。
} 现在,我的要求是当我单击“删除列”时,它会进入此方法,并且我想删除与之关联的特定列和行。 提前谢谢你的帮助。
我有一个映射到视图的实体,下面是它的外观 这工作得很好,我可以使用道从视图中检索记录。然而,我在日志中注意到Hibernate实际上正在尝试创建表,但失败了,因为它已经存在。 2015-11-12 21:56:34.841错误4204---[ost-startStop-1]组织。冬眠工具hbm2ddl。SchemaExport:HHH000389:不成功:创建表user\u profile(use
我有 Vue 组件,带有名为 的 prop,它是一个具有一堆属性的对象。而且它经常变化。 仅当<code>产品和<code>p2属性更改时,组件应加载新数据。一种方法是监视整个产品,并在更改时加载数据。但它会产生不必要的请求,因为<code>p1可能没有更改。 另一个思路是观察< code>product.p1和< code>product.p2,调用同一个函数在每个观察器中加载数据。但是,在产品
我有一个对象的arraylistTile有我想创建一个搜索函数,在这里我迭代遍历瓷砖的每个属性和arraylist中每个颜色内的每个属性(就像每个循环的嵌套),有没有一种简单的方法可以做到这一点?
德夫斯, 我有一个2个模型,其中一个有一个外键属性作为对另一个的引用。现在我尝试在模板中查看这两个对象。 在我的模板中,我只想要我的产品的确切市场 我尝试了这样的东西: 在循环中,我得到像x1、x2、x3和object.market这样的字符串的值为x1。 所以我只想输出x1。 这些是我的模型: