Mysql
 sql >> Base de données >  >> RDS >> Mysql

Spring data jpa findByDate renvoie toujours une liste vide

Avez-vous généré votre schéma de base de données ? Avez-vous essayé de le générer ?

S'il est possible de générer (avec drop), définissez la propriété suivante dans votre application.properties.

spring.jpa.hibernate.ddl-auto=create-drop

Potentiellement, vous avez différents types de données (par exemple, date contre datetime) dans votre base de données et utilisés par les données de printemps. J'ai recréé votre projet et tout a bien fonctionné avec H2 et MySQL.

MODIFIER :

Essayez de mettre à jour la description de votre colonne comme suit :

@Column(name = "creation", columnDefinition="TIMESTAMP(6)")
@Temporal(TemporalType.TIMESTAMP)
private Date creation;

Il peut y avoir différentes précisions. Voir mon code :

Classe de commande.

@Entity
@Table(name = "Ordr")
public class Order implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Long id;

    @Column(name = "creation", columnDefinition="TIMESTAMP(6)")
    @Temporal(TemporalType.TIMESTAMP)
    private Date creation;

    // getters and setters
}

Classe de haricot de test.

@Component
public class SomeBean {

    @Autowired
    private OrderRepository orderRepository;

    @PostConstruct
    public void init() {

        Date date = new Date();

        Order order = new Order();
        order.setId(1L);
        order.setCreation(date);

        orderRepository.save(order);

        Date creationFromDB = orderRepository.findOne(1L).getCreation();

        System.out.println("eq? : "+ new Date(creationFromDB.getTime()).equals(order.getCreation()));
        List<Order> ods = orderRepository.findByCreation(creationFromDB);
        List<Order> ods2 = orderRepository.findByCreation2(creationFromDB);
        System.out.println("\n ods.size: " + ods.size() +", ods2.size: "+ods2.size());

    }
}

Résultat :éq ? :trueods.size :1, ods2.size :1

Requête BD :

mysql> select * from ordr;
+----+----------------------------+
| id | creation                   |
+----+----------------------------+
|  1 | 2016-08-03 15:15:12.386000 |
+----+----------------------------+
1 row in set (0,00 sec)