簡體   English   中英

SE / FX中的JPA:如何集成TableView中使用的實體和數據模型

[英]JPA in SE/FX: how to integrate entities & data model used in TableView

使用:Java SE 8,JavaFX 8,JPA 2.1。 我正在學習JavaFX 8(與jdk 8集成),我已經知道SE和EE。 因此我已經在EE Web應用程序中使用JPA。 我的問題是:在JavaFX應用程序中創建表時,最佳實踐是實現一個類,該類定義數據模型並提供進一步使用該表的方法和字段。 例如,Person類用於定義通訊錄中的數據

public class Person {   

    private final SimpleStringProperty firstName;
    private final SimpleStringProperty lastName;

所以實體如何適應這種情況,我的意思是,這里有Person ENTITY和Person數據模型。

而且這里已經存在的問題無法回答我的問題。 謝謝

我可以說,您可以像創建Web應用程序一樣創建實體,

@Entity
@Table(name="Person")
public class Person {   
//..  your column and setters and getters
}

人道:

public interface PersonDao{

public List<Person> listPerson();
//....
}

PersonDaoImpl:

public class PersonDaoImpl implements PersonDAO {


@Override
public List<Person> listPerson() {
    // TODO Auto-generated method stub
    List<Person> list=new ArrayList<>();
    Session s=HibernateUtil.openSession();
    s.beginTransaction();
    list=s.createQuery("from Person").list();
    s.getTransaction().commit();
    s.close();
    return list;
}

人員服務:

public interface PersonService  {
  public List<Person> listPerson();
}

PersonServiceImpl:

public class PersonServiceImpl   implements PersonService{
private  PersonDao personDAO = new PersonDaoImpl();

@Override
public List<Person> listPerson() {
    // TODO Auto-generated method stub
    return  personDAO.listPerson();
}

那么您可以在控制器中使用它:

   public class ScreenController implements Initializable{

public ObservableList<Person> data; 

private PersonService personService=new PersonServiceImpl(); 


@FXML
private TableView<Person> table_person;
@FXML
private TableColumn<Person, String> firstName;
@FXML
private TableColumn<Person, String> lastName;

@Override
public void initialize(URL url, ResourceBundle rb) {

firstName.setCellValueFactory(new PropertyValueFactory<Person, String>("firstName")); 
lastName.setCellValueFactory(new PropertyValueFactory<Person, String>("lastName"));

data  =  FXCollections.observableArrayList();  
data.addAll(personService.listPerson());
table_person.setItems(data);

//... 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM