Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring数据-在java.util.Date类型之后找不到属性_Java_Spring_Hibernate_Jpa_Spring Data Jpa - Fatal编程技术网

Spring数据-在java.util.Date类型之后找不到属性

Spring数据-在java.util.Date类型之后找不到属性,java,spring,hibernate,jpa,spring-data-jpa,Java,Spring,Hibernate,Jpa,Spring Data Jpa,在过去的两天里,我一直在为某件事苦苦挣扎,但无法解决。 我使用的是Java7、SpringDataJPA1.0和Hibernate4.3.1.Final。 我正在尝试创建一个基于日期的查询。我已经修改了代码,使其可读 所有日期都是java.util.Date @Entity @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) public abstract class Informe { @Id @GeneratedV

在过去的两天里,我一直在为某件事苦苦挣扎,但无法解决。 我使用的是Java7、SpringDataJPA1.0和Hibernate4.3.1.Final。 我正在尝试创建一个基于日期的查询。我已经修改了代码,使其可读

所有日期都是java.util.Date

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Informe {
    @Id
    @GeneratedValue(strategy = GenerationType.TABLE)
    @Column(name = "ID")
    private Long id;

    @OneToOne(fetch=FetchType.LAZY, cascade = CascadeType.ALL)
    @JoinColumn(name="COMUNICACION_ID")
    private Comunicacion comunicacion;

    public Comunicacion getComunicacion() {
        return comunicacion;
    }

    public void setComunicacion(Comunicacion comunicacion) {
        this.comunicacion = comunicacion;
    }
}

@Entity
@Table(name = "REGISTRO_CALIFICACION")
public class RegistroCalificacion extends Informe {
}

@Entity
@Table(name = "COMUNICACION")
public class Comunicacion {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID")
    private Long id;
    @Basic
    @javax.persistence.Column(name = "FECHA_PUBLICACION_DESDE", nullable = false, insertable = true,     updatable = true, length = 19, precision = 0)
    private Date fechaPublicacionDesde;

    public Date getFechaPublicacionDesde() {
        return fechaPublicacionDesde;
    }

    public void setFechaPublicacionDesde(Date fechaPublicacionDesde) {
        this.fechaPublicacionDesde = fechaPublicacionDesde;
    }
}

public interface InformeRepository extends BaseRepository<Informe, Long> {
    List<RegistroCalificacion> findByComunicacionFechaPublicacionDesdeAfter(Date date);

}
但如果我直接访问Comunicación,如下图所示,它可以正常工作

public interface ComunicacionRepository extends BaseRepository<Comunicacion, Long> {

   List<Comunicacion> findByFechaPublicacionDesdeBefore(Date date);
}
我尝试过使用@Query,得到了相同的结果。
有什么想法吗?

我认为这应该是您的存储库:

public interface RegistroCalificacionRepository extends BaseRepository<RegistroCalificacion, Long> {

    List<Comunicacion> findByFechaPublicacionDesdeBefore(Date date);
}
因为您希望查询的是注册表项而不是通信。

是否可以添加

@Temporal(TemporalType.DATE)

@javax.persistence.Column(name = "FECHA_PUBLICACION_DESDE", nullable = false, insertable = true,     updatable = true, length = 19, precision = 0)
@Temporal(TemporalType.DATE)
private Date fechaPublicacionDesde;
应该是:

public interface InformeRepository extends BaseRepository<Informe, Long> {
    List<RegistroCalificacion> findByComunicacionFechaPublicacionDesde(Date date);

}

您正在方法名称的末尾添加单词After,而存储库在您的Comunication实体上找不到类似的属性。

您是否也可以添加getter/setter,因为我假设fetchacarga属性是fechaPublicationdesde。是的,对此表示抱歉。我复制了错误的属性,谢谢你。我添加了getter/settertry以在Informe基类中添加用于Comunication的getter/setter。我在代码中有它们,我没有将getter/setter放在这里以使其更易于阅读。他们现在在那里。检查我的回答。我认为存储库不包含源查询实体父实体,但它是根据子实体的预期目标实体配置的。不,这不起作用,因为我需要的是RegistroCalificacion列表,而不是Comunicacion列表
public interface InformeRepository extends BaseRepository<Informe, Long> {
    List<RegistroCalificacion> findByComunicacionFechaPublicacionDesde(Date date);

}