如果一列hibernate hql中有空值,则无法获取行

时间:2015-03-11 14:27:07

标签: java mysql hibernate orm hql

我在搜索操作方面遇到困难。如果一行的列中有任何null值,则该行不会出现。我尝试在is not null中使用hql,但我无法获取值。我写过hql这样的查询。它什么也没有回来。我无法理解它是如何工作的。请告诉我这个解决方案。我使用mysql

session.createQuery("FROM Employee e WHERE (e.company is not null and e.company.name = :p1) or e.name = :p1").setParameter("p1", str)

我的@Entity课程是:

@Entity
public class Employee implements Serializable {

    @Id
    @GeneratedValue
    private Long id;
    private String name;
    private float salary;

    @OneToOne(cascade = CascadeType.ALL)
    private Company company;

data of <code>Employee</code> in the Database

@Entity
public class Company implements Serializable {

    @Id
    @GeneratedValue
    private Long id;
    private String name;
    private String Location;

data of the <code>Company</code> table

1 个答案:

答案 0 :(得分:1)

试试这个

session.createQuery("FROM Employee e left join e.company c WHERE c.name = :p1 or e.name = :p1").setParameter("p1", "uday11")

当您在查询中使用e.company时,它会被翻译为inner join,这就是为什么它无法按预期运行的原因。