0
私は春のブートでJPiber with Hibernateを使用しています。JPQL結合とクラスキャスト例外
私は2つのJPAエンティティ
@Entity
@Table(name="courses_type")
public class CoursesType implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private int id;
@Column(name="course_id")
private int courseId;
@Column(name="level")
private int level;
private int credential;
private String status;
private String type;
@Column(name="updated_by")
private int updatedBy;
@Column(name="updated_on")
private Timestamp updatedOn;
@ManyToOne(fetch=FetchType.LAZY, optional=false)
@JoinColumn(name="credential", referencedColumnName="value_id",insertable=false,updatable=false)
@Where(clause="status='live'")
private BaseAttributeList credentialData;
@ManyToOne(fetch=FetchType.LAZY, optional=false)
@JoinColumn(name="level", referencedColumnName="value_id",insertable=false,updatable=false)
@Where(clause="status='live'")
private BaseAttributeList courseLevelData;
... setters and getters
}
第二のエンティティを持っている
、私は結果を反復していたとき、私はCourseTypeRepo今@Query("Select sct.courseId, sct.credential, sct.credentialData from CoursesType"
+ " sct where sct.courseId IN(?1) and sct.status = ?2")
List<CoursesType> getDataWithAttributes1(ArrayList<Integer> courseId, String status);
にJPQLクエリを記述しようとしています今
@Entity
@Table(name="attribute_list")
public class AttributeList implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="value_id")
private int valueId;
private String status;
@Column(name="value_name")
private String valueName;
}
、私はクラスを取得しているキャスト例外は
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.domain.CoursesType
基本的には、1つのjpqlクエリを使用して完全なデータを取得しようとしています。 これはどのように修正する必要がありますか?
あなたの問題を正しく理解しているかどうかわかりませんが、もし私が多分あなたが試してみるべきです:sctとしてsct.courseId IN(?1)とCoursesTypeからsctを選択してくださいsct.status =?2 – GionJh
はい、動作しています.BTはすべての列を取得しません。テーブルには20個のカラムがあり、2個のカラムだけを取り出したい –
\ upvoteの回答を受け入れることを忘れないでください... – Cepr0