leonardo kenji shikida created OPENJPA-2569:
-----------------------------------------------
Summary: QBE is not using the right column name in join
Key: OPENJPA-2569
URL: https://issues.apache.org/jira/browse/OPENJPA-2569
Project: OpenJPA
Issue Type: Bug
Components: jpa
Affects Versions: 2.3.0
Environment: tomee+ 1.6.0 stable
Reporter: leonardo kenji shikida
I have a query like this
public List<E> qbe(E example) {
OpenJPACriteriaBuilder cb = (OpenJPACriteriaBuilder)
entityManager.getCriteriaBuilder();
CriteriaQuery<E> q = cb.createQuery(clazz);
Root<E> entity = q.from(clazz);
q.where(cb.qbe(entity, example)); // query by example
q.select(entity);
TypedQuery<E> tq = entityManager.createQuery(q);
return tq.getResultList();
}
for entities like this
@Entity
@Table(name="APPUSER",uniqueConstraints=@UniqueConstraint(columnNames={"username"}))
public class User implements Serializable{
/**
*
*/
private static final long serialVersionUID = 4411272750939441365L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
(...)
and this
@Entity
public class PasswordRotationJob implements Serializable{
(...)
@ManyToOne
@JoinColumn(name="userId")
private User submitter;
The QBE query seems to assume a wrong column name
Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: ORA-00904:
"T1"."USERID": invalid identifier
{prepstmnt 1347119244 SELECT t0.id,(...), t1.id, (...), t2.id, (...) FROM
PasswordRotationJob t0, APPUSER t1, (...) WHERE (...) AND t0.userId =
t1.userId(+) (...)} [code=904, state=42000]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)