Java Hibernate-如何仅在属性不为null时获取属性?

Java Hibernate-如何仅在属性不为null时获取属性?,java,hibernate,Java,Hibernate,用户与汽车的比例为1:1。但用户并不总是有车 我只有汽车用户。如何修改此查询以获取所有用户 我使用fetch是因为我需要会话之外的user.car,我这样做对吗 谢谢。使用专门为此目的设计的 query = session.createQuery("select u from User as u left join fetch u.car"); 如果您只想获得所有用户,那么为什么不: List users = session.createCriteria(User.class).list();

用户与汽车的比例为1:1。但用户并不总是有车

我只有汽车用户。如何修改此查询以获取所有用户

我使用fetch是因为我需要会话之外的user.car,我这样做对吗

谢谢。

使用专门为此目的设计的

query = session.createQuery("select u from User as u left join fetch u.car");

如果您只想获得所有用户,那么为什么不:

List users = session.createCriteria(User.class).list();

如果您的用户类映射到Cars,则返回的用户对象将具有与之关联的Car数据,Hibernate将根据模式自动返回此数据,它可能是延迟加载的,即,在您尝试使用它时,它将仅检索实际的Cat数据。

结果中是否需要汽车?否则,从用户u中选择u应该执行此任务

如果car可以为null,但需要检索它,则可以执行连接提取,从用户u left outer连接提取u.car中选择u。 希望这是正确的语法。外部联接确保即使使用空关系也能得到结果。在这种情况下,一次连接获取就足够了


在hibernate文档中还有更多的工作示例:SQL查询看起来像一条文本消息。对于我们所有人来说,它看起来像是短信速记。
List users = session.createCriteria(User.class).list();