2017-12-25 5 views
0

Ich bin neu für Spring Boot. Ich fand @Entity kann eine Klasse zu db machen, und es funktioniert.Wie mache ich eine Unterklasse @Entity?

//tTicker.java 
@Entity 
public class tTicker { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Integer id; 

    private String currencyPair; 
    private BigDecimal open; 
    private BigDecimal last; 

    ...... 
} 

//tTickerRepository.java 
public interface tTickerRepository extends CrudRepository<tTicker,Long> { 
}  

//tService.java 
tTicker tt = new tTicker(); 
     tt.setCurrencyPair(ticker.getCurrencyPair().toString()); 
     tt.setOpen(ticker.getOpen()); 
     tt.setLast(ticker.getLast());  

     ttickerRepository.save(tt); 

aber wenn ich diese Klasse erweitert, nur aktuelle Feldspeicher zu db.

//aTicker.java 
@Entity 
public class aTicker extendstTicker { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Integer id; 

} 

//tTicker.java 
@Entity 
public class tTicker {  
    private String currencyPair; 
    private BigDecimal open; 
    private BigDecimal last; 

    ...... 
} 

Wie kann ich tun? Vielen Dank für Ihre Hilfe.

https://github.com/xchao0213/aitrader

+0

ich in Erbe unter Entitätsklassen kurz sah, und es sieht nicht trivial. Sind Sie sicher, dass Sie eine Vererbungshierarchie in Ihren Entitätsklassen benötigen? –

Antwort

0

Da Ihre Frage an JPA-Entitäten verbunden ist, sollten Sie einen Blick auf die PPV Dokumentation nehmen (nicht Boot springen).

Sie benötigen eine Super-/Basisklasse mit @MappedSupperClass zu annotieren:

//tTicker.java 
@MappedSupperClass 
public class tTicker {  
    private String currencyPair; 
    private BigDecimal open; 
    private BigDecimal last; 

    ...... 
} 


//aTicker.java 
@Entity 
public class aTicker extends tTicker { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Integer id; 

} 

einen Blick auf @MappedSupperClass Dokumentation Nehmen: https://docs.oracle.com/javaee/7/api/javax/persistence/MappedSuperclass.html

+0

@Tim, mit MappedSuperclass Annotation in TTicker wird er erreichen, was er braucht .. – tuga

+0

Dann post diesen Code als Lösung. –

Verwandte Themen