【发布时间】:2017-12-17 08:45:30
【问题描述】:
我们正在使用 spring boot 1.5.3 提供的 spring data jpa。在存储库类中,我想从一个表中只获取几列,包括来自子表(这是一个单映射)的数据,所以我编写了一个带有查询的方法。 但是该查询方法不起作用并在日志中看到以下错误/警告
SQL Error: -104, SQLState: 42601
DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=.;ARRAY + - ROW NEXTVAL PREVVAL NEXT PREVIOUS ( <INTEGER>, DRIVER=4.19.26
这是我的父实体:
@Entity
@Table(name = "parent_table")
public Class Parent {
// no-param constructor
Parent(int id, String name, Child childData) {
// assign these accordingly
}
// id, name, and couple of other mappings
@OneToMany(mappedBy = "parent", fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval=true)
private Set<Child> childData;
}
子实体:
@Entity
@Table(name = "child_table")
public class Child {
// id and couple of other columns
@ManyToOne (fetch = FetchType.LAZY)
@JoinColumn(name = "p_id", nullable = false, insertable = false, updatable = false)
private Parent parent;
}
存储库在这里:
@Transactional
public interface ParentRepository extends CrudRepository<Parent, Integer> {
@Query("select new Parent(id, name, p.childData) from Parent p where p.id=?1")
public Parent findOnlyChildDataById(final int id);
}
【问题讨论】:
标签: hibernate spring-boot spring-data-jpa