Mysql
 sql >> база данни >  >> RDS >> Mysql

Пролетните данни jpa findByDate винаги връщат празен списък

Генерирахте ли вашата db схема? Опитахте ли да го генерирате?

Ако е възможно да се генерира (с отпадане), задайте следното свойство във вашето приложение.properties.

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

Потенциално имате различни типове данни (напр. дата срещу дата и час) във вашата DB и използвани от пролетни данни. Пресъздадох вашия проект и всичко работи добре с H2 и MySQL.

РЕДАКТИРАНЕ:

Опитайте да актуализирате описанието на колоната си, както следва:

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

Може да има различни точности. Вижте моя код:

Клас на поръчката.

@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
}

Тествайте клас bean.

@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());

    }
}

Резултат:eq? :trueods.size:1, ods2.size:1

Заявка в DB:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. (доставчик:Named Pipes Provider, грешка:40 - Не можа да се отвори връзка към SQL Server)

  2. MYSQL търси ID в масив от DB

  3. Анализиране на xml файл и съхраняването му в база данни

  4. копирането във временна таблица отнема много време

  5. как да структурирате данните за търсене