2017-06-17 6 views
0

"InheritanceType.JOINED"型のデータベース継承を実装しました。 CRUD操作を行うCrudRepositoryインターフェースを拡張しました。いくつかのユニットテストを実装しました。私は、&のアップデートが完全に動作することを確認しますが、削除は全く動作しません。それで、これで何が起こるのですか?ここでSpringデータJPA InheritanceType.JOINED delete機能していません

コードユナイトテストです:ここで

@RunWith(SpringRunner.class) 
@SpringBootTest 
public class LineCommandRepoTest { 

    @Autowired 
    CommandRepository commandRepository; 
    @Autowired 
    ProduitRepository produitRepository; 
    @Autowired 
    LineCommandRepository lineCommandRepository; 




    public void update() { 
     LineCommande lc = lineCommandRepository.findOne(4); 
     lc.setQty(BigDecimal.valueOf(2000)); 
     lc.setRemise(BigDecimal.valueOf(2000)); 
     lc.setPrice(BigDecimal.valueOf(2000)); 
     // lineCommandRepository.save(lc); 
     lineCommandRepository.save(lc); 
     LineCommande lc2 = lineCommandRepository.findOne(4); 
     Assert.assertTrue(lc.getPrice().equals(BigDecimal.valueOf(2000))); 


    } 


    public void insert() { 
     Commande commande = commandRepository.findOne(1); 
     Product p = produitRepository.findOne(1); 
     LineCommande lc = new LineCommande(); 

     lc.setQty(BigDecimal.ONE); 
     lc.setPrice(BigDecimal.ONE); 
     lc.setRemise(BigDecimal.ONE); 
     lc.setCommande(commande); 
     lc.setProduct(p); 

     lineCommandRepository.save(lc); 
     Assert.assertTrue(lineCommandRepository.exists(lc.getIdLine())); 

    } 


@Test 
    public void delete() { 
     lineCommandRepository.delete(4); 
     Assert.assertFalse(lineCommandRepository.exists(4)); 
    } 


} 

は、スーパークラスのコードです:

import javafx.beans.property.IntegerProperty; 
    import javafx.beans.property.ObjectProperty; 
    import javafx.beans.property.SimpleIntegerProperty; 
    import javafx.beans.property.SimpleObjectProperty; 
    import org.springframework.data.annotation.AccessType; 

    import javax.persistence.*; 
    import java.math.BigDecimal; 


    @Entity 
    @Table(name = "linecpiece") 
    @Inheritance(strategy = InheritanceType.JOINED) 
    @AccessType(AccessType.Type.PROPERTY) 
    public abstract class LinePiece { 


     private int idLine; 
     private ObjectProperty<BigDecimal> qty = new SimpleObjectProperty<BigDecimal>(BigDecimal.ZERO); 
     private ObjectProperty<BigDecimal> price = new SimpleObjectProperty<BigDecimal>(BigDecimal.ZERO); 
     private ObjectProperty<BigDecimal> remise = new SimpleObjectProperty<BigDecimal>(BigDecimal.ZERO); 
     private IntegerProperty tva = new SimpleIntegerProperty(); 
     private ObjectProperty<BigDecimal> subTotal = new SimpleObjectProperty<BigDecimal>(BigDecimal.ZERO); 
     // Getter and setter with annotations 
} 

コードは、子クラスのために

package com.example.model.purchase; 
    import com.example.model.Product; 
    import javax.persistence.*; 

    @Entity 
    @Table(name = "linecommande") 
    @PrimaryKeyJoinColumn(name = "idlinepiece") 
    public class LineCommande extends LinePiece { 

     private Commande commande; 
     private Product product; 


     @ManyToOne 
     @JoinColumn(name = "idcommercialepiece") 
     public Commande getCommande() { 
      return commande; 
     } 

     public void setCommande(Commande commande) { 
      this.commande = commande; 
     } 

     @ManyToOne 
     @JoinColumn(name = "idproduct") 
     public Product getProduct() { 
      return product; 
     } 

     public void setProduct(Product product) { 
      this.product = product; 
     } 

    /* 
     public static Callback<LineCommande, Observable[]> extractor() { 
      return (LineCommande p) -> new Observable[]{p.qtyProperty(), p.priceProperty(), p.subTotalProperty()}; 
     }*/ 

    } 

答えて

0

ます(フラッシュを呼び出す必要があります)lineCommandRepository.delete(4)の後に;

フラッシュ()CrudRepositoryには存在しませんが、それはEntityManagerの

にpresenetています
関連する問題