Генерация запроса Eclipselink с оператором IS NULL - PullRequest
0 голосов
/ 30 мая 2018

У меня 3 таблицы, RA, CC и EC.RA имеет внешний ключ 'ec', который отображается на столбец 'code' в таблице EC.У RA также есть другой внешний ключ, 'sc', который отображается на столбец 'code' в таблице CC.

@Entity
@NamedQueries({
@NamedQuery( name="getSettingsByCode, query="select object(o) from RA where  o.sc.code = :someCode and o.ec.code is null" )
})

public class RA implements java.io.Serializable {
@Id
private long id;

private Timestamp recupdatetime;

@ManyToOne
@JoinColumn(name="SC")
private Cc sc;

@ManyToOne
@JoinColumn(name="EC")
private Ec ec;

Сущность для Cc

@Entity

public class Cc {

@OneToMany(mappedBy="sc")
private Set<RA> raCollection;

Сущность для Ec

@Entity

public class Ec  {

@OneToMany(mappedBy="ec")
private Set<Recommendedalarmsetting> recommendedalarmsettingCollection;

При выполнении namedQuery генерируется следующий sql,

[sql] SELECT t0.ID, t0.RECUPDATETIME, t0.EC, t0.SC FROM RA t0, EC t1 WHERE (
((t0.sc = ?) AND (t1.CODE IS NULL)) AND (t1.CODE = t0.ec))

Правильно ли создан этот SQL?Я не уверен, что оператор IS NULL создает соединение с таблицей EC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...