【发布时间】:2017-08-29 12:50:44
【问题描述】:
我在 Spring Boot 中使用 JPA 和 Hibernate。
我有两个 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
}
第二个实体
@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;
}
现在我正在尝试在 CourseTypeRepo 中编写一个 JPQL 查询
@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);
现在当我迭代结果时,我得到了类 Cast Exception
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.domain.CoursesType
基本上我正在尝试使用一个 jpql 查询来获取完整数据。 我应该如何解决这个问题?
【问题讨论】:
-
我不知道我是否正确理解了您的问题......但如果我理解了,也许您应该尝试: Select sct from CoursesType as sct where sct.courseId IN(?1) and sct.status = ?2
-
是的,dat 正在工作,但我不想获取所有列。表有 20 列,我只想获取 2 列
-
别忘了接受\upvote那些对你有帮助的答案...
标签: spring-boot spring-data-jpa