2016-04-13 33 views
0

test yönteminde kaydetme yönteminde takılı kalıyor. Birim testimi CrudRepository.save yöntemi ile çalışmakta güçlük çekiyorum. Birim testimi çalıştırdığımda, save() yöntemini geçmeyecek şekilde sonsuza kadar çalışmaya devam ediyor. Benim konsolunda görünürSpring Data JPA,

son DEBUG mesajdır:

16:20:35.293 [main] DEBUG org.hibernate.loader.Loader - Done entity load 

Şimdi garip bölüm I birincil anahtar 1'dir SADECE eğer eski JdbcTemplate kullanarak tek ekleme deyimini yürütmek eğer çalışıyor olmasıdır.
Örneğin;
INSERT INTO my_table (id, value) VALUES (1, 'Hello World')
çalışacak ve test
başaracaktır Ama bu olmaz:
INSERT INTO my_table (id, value) VALUES (2, 'Hello World')
Ve Test sonsuza çalışmaya devam

Zaten, auto_increment değil kurulum hakkı gibi bir şey arıyordum olmuştur ama Hiçbir şey bulamadım.

+0

JdbcTemplate eklentileri için kullandığınız tam kodu, sonsuza dek koşmaya neden oluyor mu? –

+0

Bu başka bir yol var; varsayılan olarak testlerim sonsuza kadar devam eder ve sorgumda verilen insert ifadesini kullanarak test sonucunu yapar. – Jelle

+0

Tamam, bu yüzden kaydetmenin() yalnızca güncelleştiriliyorsa çalıştığını öğrendim. Yani, ID x veritabanında bulunduğunda, işe yarayacak, işe yaramıyor. – Jelle

cevap

0

Tamam, bu yüzden otomatik artımlı değişkenim için @GeneratedValue açıklaması için farklı bir değer kullanmam gerektiğini öğrendim.

Bu değerden ilk değeri kullandım: https://stackoverflow.com/a/4103347/5976604 ve daha sonra çalıştı.

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

Ben hazırda bu gerçekleştiğinde bir özel ya da bir şey atmak yok, ama bunun yerine takılıyor o sinir bozucu olduğunu düşünüyorum.

İlgili konular