[오류(오류 63;)]EclipseLink 2.5.2 lambda에서 ManyToOne 관계가 움직이지 않음
4715 단어 JavaJavaEEEclipseLinkjpa
전제 조건
이러한 OneToMany/ManyToOne 솔리드가 있다고 가정합니다.
하위 솔리드 STREET에는 모 솔리드 CITY가 있습니다.+-------+ (1) (n) +--------+
| CITY |-----------| STREET |
+-------+ +--------+
프로그램은 이런 느낌이다.
City.java@Entity
class City {
@OneToMany(mappedBy="city")
private List<Street> streetList;
}
Street.java@Entity
class Street {
@ManyToOne
private City city;
public City getCity() {
return city;
}
}
문제.
하위 엔티티 "STREET"를 가져오더라도 lambda에서 상위 엔티티 "CITY"를 가져오려면 SQL이 실행되지 않으며 가져올 수 없습니다.
Test.javaclass Test {
@PersistenceContext
private EntityManager em;
public void test {
em.createQuery("SELECT s FROM Street s", Street.class)
.getResultList()
.stream()
.forEach(x -> System.out.println(x.getCity().toString())); // ← ダメ
}
까닭
EclipsseLink 2.5.2의 구린내 나는 벌레인 것 같다.2.6 고쳤다.
그러니까 글래스피쉬 4.1은 위선
회피책
그 1@JoinFetch
하위 솔리드@JoinFetch
, 상위 솔리드를 미리 가져옵니다.
Street.java@Entity
class Street {
@ManyToOne
@JoinFetch // ←追加
private City city;
public City getCity() {
return city;
}
}
그 2lambda를 사용하지 않습니다.
뭐랄까, EclipseLink와 lambda는 마음이 맞지 않아...
2015.1.28 추기
글의 철자가 틀렸다.
× lamda
○ lambda
× Eclipse 2.5.2
○ EclipseLink 2.5.2
@laughter선생님, @tag1216선생님, 편집 요청에 감사드립니다.
@deaf_tadashi 메모 감사합니다.
Reference
이 문제에 관하여([오류(오류 63;)]EclipseLink 2.5.2 lambda에서 ManyToOne 관계가 움직이지 않음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sengoku/items/c507fa2b51ef676a367f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
+-------+ (1) (n) +--------+
| CITY |-----------| STREET |
+-------+ +--------+
@Entity
class City {
@OneToMany(mappedBy="city")
private List<Street> streetList;
}
@Entity
class Street {
@ManyToOne
private City city;
public City getCity() {
return city;
}
}
하위 엔티티 "STREET"를 가져오더라도 lambda에서 상위 엔티티 "CITY"를 가져오려면 SQL이 실행되지 않으며 가져올 수 없습니다.
Test.java
class Test {
@PersistenceContext
private EntityManager em;
public void test {
em.createQuery("SELECT s FROM Street s", Street.class)
.getResultList()
.stream()
.forEach(x -> System.out.println(x.getCity().toString())); // ← ダメ
}
까닭
EclipsseLink 2.5.2의 구린내 나는 벌레인 것 같다.2.6 고쳤다.
그러니까 글래스피쉬 4.1은 위선
회피책
그 1@JoinFetch
하위 솔리드@JoinFetch
, 상위 솔리드를 미리 가져옵니다.
Street.java@Entity
class Street {
@ManyToOne
@JoinFetch // ←追加
private City city;
public City getCity() {
return city;
}
}
그 2lambda를 사용하지 않습니다.
뭐랄까, EclipseLink와 lambda는 마음이 맞지 않아...
2015.1.28 추기
글의 철자가 틀렸다.
× lamda
○ lambda
× Eclipse 2.5.2
○ EclipseLink 2.5.2
@laughter선생님, @tag1216선생님, 편집 요청에 감사드립니다.
@deaf_tadashi 메모 감사합니다.
Reference
이 문제에 관하여([오류(오류 63;)]EclipseLink 2.5.2 lambda에서 ManyToOne 관계가 움직이지 않음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sengoku/items/c507fa2b51ef676a367f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
그 1@JoinFetch
하위 솔리드
@JoinFetch
, 상위 솔리드를 미리 가져옵니다.Street.java
@Entity
class Street {
@ManyToOne
@JoinFetch // ←追加
private City city;
public City getCity() {
return city;
}
}
그 2lambda를 사용하지 않습니다.
뭐랄까, EclipseLink와 lambda는 마음이 맞지 않아...
2015.1.28 추기
글의 철자가 틀렸다.
× lamda
○ lambda
× Eclipse 2.5.2
○ EclipseLink 2.5.2
@laughter선생님, @tag1216선생님, 편집 요청에 감사드립니다.
@deaf_tadashi 메모 감사합니다.
Reference
이 문제에 관하여([오류(오류 63;)]EclipseLink 2.5.2 lambda에서 ManyToOne 관계가 움직이지 않음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sengoku/items/c507fa2b51ef676a367f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)