Supprimer ne fonctionne Pas avec JpaRepository

J'ai un ressort 4 app lorsque j'essaie de supprimer une instance d'une entité à partir de ma base de données. J'ai l'entité suivante:

@Entity
public class Token implements Serializable {

    @Id
    @SequenceGenerator(name = "seqToken", sequenceName = "SEQ_TOKEN", initialValue = 500, allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seqToken")
    @Column(name = "TOKEN_ID", nullable = false, precision = 19, scale = 0)
    private Long id;

    @NotNull
    @Column(name = "VALUE", unique = true)
    private String value;

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "USER_ACCOUNT_ID", nullable = false)
    private UserAccount userAccount;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "EXPIRES", length = 11)
    private Date expires;

    ...
    //getters and setters omitted to keep it simple
}

J'ai un JpaRepository interface définie:

public interface TokenRepository extends JpaRepository<Token, Long> {

    Token findByValue(@Param("value") String value);

}

J'ai une unité de configuration de test qui fonctionne avec une mémoire de base de données (H2) et je suis pré-remplissage de la base de données avec deux jetons:

@Test
public void testDeleteToken() {
    assertThat(tokenRepository.findAll().size(), is(2));
    Token deleted = tokenRepository.findOne(1L);
    tokenRepository.delete(deleted);
    tokenRepository.flush();
    assertThat(tokenRepository.findAll().size(), is(1));
}

La première affirmation qui passe, la seconde échoue. J'ai essayé un autre test qui change la valeur du jeton et l'enregistre dans la base de données et il fonctionne, donc je ne suis pas sûr de savoir pourquoi les supprimer ne fonctionne pas. Il ne jette pas des exceptions soit, juste ne pas persister dans la base de données. Il ne fonctionne pas à l'encontre de ma base de données oracle.


Modifier

Toujours avoir ce problème. J'ai été en mesure d'obtenir la suppression de persister à la base de données en ajoutant ceci à mon TokenRepository interface:

@Modifying
@Query("delete from Token t where t.id = ?1")
void delete(Long entityId);

Cependant, ce n'est pas une solution idéale. Toutes les idées de ce que je dois faire pour le faire fonctionner sans cette méthode supplémentaire?

avez-vous jamais trouver une solution à cela? même problème dans les plus récentes de printemps version aussi. selon mysql table de journal, pas de suppression déclaration est émise, aucun message d'erreur n'est disponible.
Malheureusement pas. Je n'ai plus eu besoin de le faire ici plus et les autres endroits que j'avais à faire, il semblait aller bien. Je ne sais pas ce qui était si spécial au sujet de cette affaire.

OriginalL'auteur Twisty McGee | 2014-03-27