У меня есть запрос, который работает в простом SQL, но не работает с JPA и не может понять, почему. Как вы можете догадаться из названия, у меня есть ключ, но я не знаю, как его «исправить».JPA join column с нулевыми значениями
Вот фактический важный код:
@Id
@Basic(optional = false)
@Column(name = "id", nullable = false)
private Integer id;
@Basic(optional = false)
@Column(name = "read_permission", nullable = false)
private boolean readPermission;
@Basic(optional = false)
@Column(name = "write_permission", nullable = false)
private boolean writePermission;
@Basic(optional = false)
@Column(name = "execute_permission", nullable = false)
private boolean executePermission;
@Basic(optional = false)
@Column(name = "admin_permission", nullable = false)
private boolean adminPermission;
@JoinColumn(name = "xinco_core_data_id", referencedColumnName = "id", nullable=true)
@ManyToOne(fetch = FetchType.LAZY)
private XincoCoreData xincoCoreDataId;
@JoinColumn(name = "xinco_core_group_id", referencedColumnName = "id", nullable=true)
@ManyToOne(fetch = FetchType.LAZY)
private XincoCoreGroup xincoCoreGroupId;
@JoinColumn(name = "xinco_core_node_id", referencedColumnName = "id", nullable=true)
@ManyToOne(fetch = FetchType.LAZY)
private XincoCoreNode xincoCoreNodeId;
@JoinColumn(name = "xinco_core_user_id", referencedColumnName = "id", nullable=true)
@ManyToOne(fetch = FetchType.LAZY)
private XincoCoreUser xincoCoreUserId;
А вот работает SQL:
select * from xinco_core_ace where xinco_core_user_id = 1 order by xinco_core_user_id, xinco_core_node_id, xinco_core_data_id;
И вот что я пытаюсь сделать:
SELECT xca FROM XincoCoreAce xca WHERE xca.xincoCoreUserId.id = 1 ORDER BY xca.xincoCoreUserId.id, xca.xincoCoreGroupId.id, xca.xincoCoreNodeId.id, xca.xincoCoreDataId.id
вопрос, Я думаю, что xca.xincoCoreUserId.id, xca.xincoCoreGroupId.id, xca.xincoCoreNodeId.id, xca.xincoCoreDataId.id могут быть nul левая сторона
Любая идея? Надеюсь, легче читать: P
Вообще говоря, выполнение дампа кода в вопросе - плохая идея. Вы должны сократить этот код до минимума, чтобы продемонстрировать проблему. Если это облегчает чтение и понимание (и, следовательно, это гораздо более вероятно, чтобы читать и отвечать), и, если ничего другого, это демонстрирует, что вы приложили некоторые усилия. Cheers. – cletus
Спасибо за отзыв, это всего лишь мой второй вопрос и первый со связанным кодом. надеюсь, сейчас чище. – javydreamercsw