首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在不获取完整实体的情况下获取从属Hibernate实体的外键列值?

在不获取完整实体的情况下,获取从属Hibernate实体的外键列值,可以通过以下方法实现:

  1. 使用HQL查询:
代码语言:java
复制
String hql = "SELECT e.id FROM Entity e WHERE e.parentId = :parentId";
Query query = session.createQuery(hql);
query.setParameter("parentId", parentId);
List<Integer> ids = query.list();
  1. 使用Criteria查询:
代码语言:java
复制
Criteria criteria = session.createCriteria(Entity.class);
criteria.setProjection(Projections.property("id"));
criteria.add(Restrictions.eq("parentId", parentId));
List<Integer> ids = criteria.list();
  1. 使用原生SQL查询:
代码语言:java
复制
String sql = "SELECT id FROM entity WHERE parent_id = :parentId";
Query query = session.createSQLQuery(sql);
query.setParameter("parentId", parentId);
List<Integer> ids = query.list();
  1. 使用JPA Criteria API:
代码语言:java
复制
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Integer> cq = cb.createQuery(Integer.class);
Root<Entity> root = cq.from(Entity.class);
cq.select(root.get("id"));
cq.where(cb.equal(root.get("parentId"), parentId));
TypedQuery<Integer> query = entityManager.createQuery(cq);
List<Integer> ids = query.getResultList();

以上方法均可以实现在不获取完整实体的情况下,获取从属Hibernate实体的外键列值。其中,HQL、Criteria和JPA Criteria API是Hibernate提供的查询方式,而原生SQL查询则是直接使用SQL语句查询。

需要注意的是,以上方法中的Entityid应该替换为实际的实体类名和外键列名。同时,parentId应该替换为实际的外键值。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券