MySQLにすでに挿入されているエンティティの自動生成IDを取得したいと思います。javafxで休止状態のアプリケーションを作成しました。 IDは自動生成され、エンティティのIDを取得する必要があるので、データベースに保存した後、ユーザー名とパスワードを書きます。私はIDとパスワードのIDを入力します。 USERNAME:123、password:asd、ID:1を自動生成します。ユーザー名:123、パスワード:asdに書き込み、削除ボタンをクリックすると、そのエンティティは削除されます。だから私はそれのIDを取得し、IDでそれを削除する必要があり、私はどのようにわからない。 Java Hibernateがユーザー名とパスワードを挿入して削除するときにエンティティのIDを取得して削除する
public class TestMain extends Application {
static Employee m = new Employee();
public static void main(String[] args) { launch(args); }
@Override
public void start(Stage primaryStage) throws Exception {
// TODO Auto-generated method stub
Stage window = primaryStage;
window.setTitle("WELCOME");
Label l1 = new Label();
// l1.setFont(new Font(48));
l1.setText("SMS");
l1.setTranslateY(-180);
Button closeBut = new Button("Exit.");
closeBut.setTooltip(new Tooltip("Click to exit application"));
closeBut.setOnAction(e -> window.close());
Button save = new Button ("Save");
save.setTooltip(new Tooltip("Click to save to database"));
Label l2 = new Label("Username ");
TextField username = new TextField();
username.setTooltip(new Tooltip("Enter your new username"));
username.setPromptText("username");
GridPane.setConstraints(l2,0,0);
GridPane.setConstraints(username,1,0);
Label l3 = new Label("Password ");
PasswordField password = new PasswordField();
password.setTooltip(new Tooltip("Enter your new password"));
password.setPromptText("password");
GridPane.setConstraints(l3,0,1);
GridPane.setConstraints(password,1,1);
Label l4 = new Label();
GridPane.setConstraints(l4,0,4);
GridPane.setConstraints(save,0,2);
GridPane.setConstraints(closeBut,1,2);
//Configureation Hibernate
// Configuration config = new Configuration();
//config.configure("hibernate.cfg.xml");
SessionFactory sf = new Configuration().configure().buildSessionFactory();
//
save.setOnAction(e -> {
m.setUser(username.getText());
m.setPassword(password.getText());
Session session = sf.openSession();
session.beginTransaction();
session.delete(m);
session.getTransaction().commit();
});
GridPane grid = new GridPane();
grid.setPadding(new Insets(10,10,10,10));
grid.setVgap(8);
grid.setHgap(0);
grid.getChildren().addAll(l1,l2,username,l3,password,save,l4,closeBut);
grid.setAlignment(Pos.CENTER);
Scene scene = new Scene(grid,300,400);
window.setScene(scene);
window.show();
}
}
とJavaクラスの従業員:あなたが言ったように
package mypackage;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.*;
import javax.persistence.Id;
@Entity(name="EMPLOYEE")
public class Employee {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="ID")
private int Id;
@Column(name="USERNAME")
private String user;
@Column(name="PASSWORD")
private String password;
public int getId() {
return Id;
}
public void setId(int Id) {
this.Id = Id;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
save.setOnAction ..これをクリックすると、指定されたユーザー名とパスワードを持つユーザーが既にdbになっていますか?そして、このボタンはそれを削除する必要がありますか?あなたのケースはちょっと混乱しています。私は言う必要があります –
私はまだ削除のための別のボタンを作っていないので、私はsession.save(m)を設定します。と私は私がsession.delete(m)に変更を削除したいと思います。 、それは別のボタンの削除かもしれません。私はそれを行いますが、データベースからエンティティを削除することはできません。 – FIREHIVE