"select p from Product p left join fetch p.producerEntities"
和我的持久性类:
class Product
{
Set<Producer> producerEntities = new HashSet<>();
....
@OneToMany(fetch = FetchType.LAZY)
@JoinColumn(name="pid")
public Set<Producer> getProducerEntities(){
return producerEntities;
}
....
}
我不明白问题出在哪里?
如果join fetch抛出LIEX,那么我可以建议使用动态实体图,因为如果需要定义特定于用例的图。
让我们试试这一个,我做了,并为我工作。
public class DynamicEntityGraphDemo {
public static void main(String[] args) {
EntityManager em = HibernateUtil.getEntityManager();
EntityGraph graph = em.createEntityGraph(Product.class);
Subgraph itemGraph = graph.addSubgraph("producerEntities");
Map hints = new HashMap();
hints.put("javax.persistence.loadgraph", graph);
Product pro = em.find(Product.class, 1, hints);
System.out.println("DynamicEntityGraphDemo pro = " + pro.toString() +
"producer = " + pro.getProducerEntities().toString());
}
}
注意:动态实体图在检索子实体时使用左外部连接。(Subgraph itemGraph=graph.addSubgraph(“ProducerEntities”);
我正在使用spring boot开发REST应用程序,并试图优化查询的性能。我目前正在使用存储库中的,这会导致性能问题。代码如下: 个人实体 密码实体 角色实体 人员存储库 当我做一个时,在人表中的每一行都会触发选择查询,以获取密码和角色。我知道我可以在存储库中使用注释和来强制生成单个查询,但是我想知道是否有其他方法可以这样做。我正在寻找我们可以在实体级别上做的事情来减少查询。 使用Spring
考虑和<代码>雇员< /代码>和<代码>地址< /代码>关系。在和之间有一对一的映射。以下是模型: 现在,当我执行以下HQL查询时,它会在内部生成两个查询。一个取员工,另一个取地址。 由Hibernate生成的SQL查询 因为我使用的是,所以我希望Hibernate只执行一个带有JOIN的查询,一次性获取员工和地址数据。 你知道为什么它要执行两个查询吗?我如何让Hibernate使用join只执行
我有一个使用Hibernate 4.1、Spring 3.1和JSF 1.2的web app(myFaces)。 每次尝试访问我的一个页面时,我都有这个“懒惰初始化异常” 我想我错过了一些东西,因为我不知道如何给我的班级“会议”。 有关信息,以下是我的一些配置文件: spring-config.xml: 我的java类EOServiceType 我的Hibernate EOServiceTypeD
问题内容: 有没有办法使用HQL在Grails中使用hibernate命名查询? 我已经在《利用hibernate》一书中阅读了有关它们的内容,想知道是否有办法在Grails中使用它们。 像这样的映射文件中包含命名查询以及类映射: 现在,我确定可以包含一个 hibernate映射文件, 并将其集成到Grails GORM配置中,因为在此声明,包含 hibernate映射文件的 可以在Grails中
今天我学习了一个教程,作者在其中解释了hibernate关联一对多/多对一。我不想把他所有的代码都写在这里。所以,我试着把重点放在。。。 我们有两个实体:“团队”和“球员” 在代码中,我们有: 和 我最感兴趣的是回迁的类型。所以,我们加入了一支球队和一些属于这支球队的球员。我的DAO类标记为 现在我想从数据库中加载充满玩家集合的团队实体。 结果是,我将得到LazyInitializationExc