可以说我有两个实体
public class EntityA
{
@id
@GeneratedValue
@Column(name="id")
private Long id;
@OneToMany(mappedBy="EntityA")
@JoinColumn(name = "entityA_id")
private List<EntityB> entityBList;
}
public class EntityB
{
@Column(name = "MODEL_PERCENT")
private BigDecimal modelPercent;
@ManyToOne
@joincolumn(name="entityA_id")
private EntityA entityA;
}
我现在想要的是,当我获取EntityA时,我想添加一个where子句以获取所有modelPercent大于0的EntityB。
我不想使用过滤器,因为此要求仅适用于这种特殊情况。
例如数据:
EntitytA table
id
1
EntityB table
id EntitytA_Id modelPercent
1 1 10
2 1 0
我需要一种方法,可能是获取EntityA的hql,以便当我说EntityA.getEntityBList()时,它应该仅返回1条记录(一个模型百分比为10(大于零的记录))。
我试过下面的查询,但它似乎不起作用。即,它从entityB返回两个记录
select a from EntityA a,IN( a.EntityBList) b where a.id =:id and b.modelPercent>0
任何建议或指向某些示例的指示都会有很大帮助。
谢谢
1)您在映射
EntityA时遇到 错误- 实体B同时 具有属性和字段访问权限-
实体 ID没有ID,并且同时具有属性和字段访问权限
2)HQL查询是
SELECT eA FROM EntityA LEFT JOIN eA.entityBList eB WHERE eA.id =:id AND eB.modelPercent > 0
问题内容: 我想问一下是否有可能使用hibernate方式做到这一点。假设我已经运行了HQL并检索了一个集合。是否可以使用hibernate进一步过滤它? 我试图在标头类中使用,并在查询之前添加session.enable(),但似乎无法正常工作。 样例代码 精简HQL 问题答案: 不。至少不是您问的方式。一旦您要求Hibernate(使用方法)访问数据库,Hibernate就发挥了作用,结果现在
问题内容: 我要删除,因此要从数据库中删除行。 我 确实 要删除某个实体及其所有行。不过,我 不 希望从它删除任何行。 如何 我能做到这一点? 是,并且是我要删除的实体。 请参阅下面的代码,了解我如何在“狗窝实体”中链接2: 目前,当我删除狗entitie(S),其相关的养犬实体 中 也被删除。 编辑:将狗映射到狗窝: 问题答案: 当前,当我删除狗实体时,其相关的狗窝实体也将被删除。 原因是您已设
问题内容: 我在使用Hibernate创建子查询时遇到问题。不幸的是Subqueries类几乎完全没有文档,因此我完全不知道如何将以下SQL转换为Hibernate Criteria: 我希望以下内容能够“正常工作”: 但不幸的是,事实并非如此。因此,看来我实际上必须使用Subqueries类来创建Criteria。但是我无法通过Google找到一个合理的例子,因此这使我在这里提出了疑问。 问题答
问题内容: 一级缓存与hibernate中的查询缓存是否不同?我看过有关第一级和查询缓存的文章,所以我很困惑。 问题答案: 默认情况下,第一级缓存处于启用状态,并且基于每个会话。默认情况下,查询缓存未启用,它在多个会话之间共享,应始终与二级缓存一起使用。 要启用查询缓存,应使用以下属性:
问题内容: 我有一个具有以下字段的MySQL表: 其中父字段表示上层ID。例如,水果id是1,橙色是水果之一,因此父对象是1。 但是我想做一个有效的MySQL查询来获取所有记录,格式为parent-> children-> parent-> children格式。我怎样才能做到这一点? 查询的结果记录应类似于: 问题答案: 您需要mysql不支持的递归联接。您唯一可以做的就是确定最大深度(由于p-
问题内容: 我需要使用detachedCriteria进行此SQL查询: 这个想法是从不属于用户的游戏中获取ID。我尝试了与detachedCriteria类似的10种不同方法,但得到了“未知实体:null” MappingException代码应类似于: 还设置投影以仅返回游戏的ID。 有任何想法吗?我认为Hibernate在加入没有别名的查询时会遇到一些麻烦。添加别名是可行的,但结果是完全错误