簡體   English   中英

Spring Data-在找到類型java.util.Date之后沒有屬性

[英]Spring Data - No property after found for type java.util.Date

在過去的兩天里,我一直在苦苦掙扎,無法解決問題。 我正在使用Java 7,Spring數據jpa 1.0和Hibernate 4.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);

}

創建bean時會拋出此異常

Caused by: org.springframework.data.mapping.PropertyReferenceException: No property after found for type java.util.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);
}

因為您希望查詢RegistroCalificacion而不是Comunicacion。

你能補充嗎

@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”,並且存儲庫無法在“ Communicacion”實體上找到類似名稱的屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM