JpaRepository findAll() 不会 return 具有空字段的行
JpaRepository findAll() will not return rows with null fields
我有一个像这样的 JPA 存储库:
@Repository
public interface DocumentTagsViewRepository extends JpaRepository<DocumentTagsView, Long>, JpaSpecificationExecutor<DocumentTagsView> {
像这样的实体:
@Entity
@IdClass(DocumentTagsView.class)
@Table(name="document_tags_view", schema="pdf_processing")
public class DocumentTagsView implements Serializable {
private static final long serialVersionUID = -8222170971385430496L;
@Id
@Column
String vid;
@Column(nullable=true)
Long did;
@Column
Long tid;
@Column
String text;
public DocumentTagsView () {}
public String getVid() {
return vid;
}
public void setVid(String vid) {
this.vid = vid;
}
public Long getDid() {
return did;
}
public void setDid(Long did) {
this.did = did;
}
public Long getTid() {
return tid;
}
public void setTid(Long tid) {
this.tid = tid;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
@Override
public String toString() {
return "DocumentTagsView [vid=" + vid + ", did=" + did + ", tid=" + tid + ", text=" + text + "]";
}
我的 table 有 5 条记录,其中两条在 did 列中为空值:
vid did tid text
a31a1aa8-f29a-11e9-ba9d-d8cb8abfa8f6 2 6 A
a31a1a79-f29a-11e9-ba9d-d8cb8abfa8f6 2 4 B
a31a1ad2-f29a-11e9-ba9d-d8cb8abfa8f6 2 7 C
a31a19e8-f29a-11e9-ba9d-d8cb8abfa8f6 (null) 1 D
a31a1a57-f29a-11e9-ba9d-d8cb8abfa8f6 (null) 3 E
当我执行 DocumentTagsViewRepository.findAll() 时,我得到一个包含 5 个位置的列表,但最后两个为空。我希望在这些位置获得两个 DocumentTagsView 对象,但 did 值为 null。
如何在我的 findAll 列表中获取所有五个记录?
此外,您可能必须为您的实体创建 getter 和 setter。不确定 Hibernate 或您正在使用的任何 ORM 是否知道如何填充实体。
您正在使用用于复合 PK 和 jpa 的注释 @IdClass
忽略空值。
我有一个像这样的 JPA 存储库:
@Repository
public interface DocumentTagsViewRepository extends JpaRepository<DocumentTagsView, Long>, JpaSpecificationExecutor<DocumentTagsView> {
像这样的实体:
@Entity
@IdClass(DocumentTagsView.class)
@Table(name="document_tags_view", schema="pdf_processing")
public class DocumentTagsView implements Serializable {
private static final long serialVersionUID = -8222170971385430496L;
@Id
@Column
String vid;
@Column(nullable=true)
Long did;
@Column
Long tid;
@Column
String text;
public DocumentTagsView () {}
public String getVid() {
return vid;
}
public void setVid(String vid) {
this.vid = vid;
}
public Long getDid() {
return did;
}
public void setDid(Long did) {
this.did = did;
}
public Long getTid() {
return tid;
}
public void setTid(Long tid) {
this.tid = tid;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
@Override
public String toString() {
return "DocumentTagsView [vid=" + vid + ", did=" + did + ", tid=" + tid + ", text=" + text + "]";
}
我的 table 有 5 条记录,其中两条在 did 列中为空值:
vid did tid text
a31a1aa8-f29a-11e9-ba9d-d8cb8abfa8f6 2 6 A
a31a1a79-f29a-11e9-ba9d-d8cb8abfa8f6 2 4 B
a31a1ad2-f29a-11e9-ba9d-d8cb8abfa8f6 2 7 C
a31a19e8-f29a-11e9-ba9d-d8cb8abfa8f6 (null) 1 D
a31a1a57-f29a-11e9-ba9d-d8cb8abfa8f6 (null) 3 E
当我执行 DocumentTagsViewRepository.findAll() 时,我得到一个包含 5 个位置的列表,但最后两个为空。我希望在这些位置获得两个 DocumentTagsView 对象,但 did 值为 null。
如何在我的 findAll 列表中获取所有五个记录?
此外,您可能必须为您的实体创建 getter 和 setter。不确定 Hibernate 或您正在使用的任何 ORM 是否知道如何填充实体。
您正在使用用于复合 PK 和 jpa 的注释 @IdClass
忽略空值。