简体   繁体   English

休眠-如何检查用户是否存在?

[英]Hibernate - how can I check if user exists?

I got weird problem, I'm trying to use Hibernate in JavaFX app and I want in order to Hibernate will check if entered values exist in database, but... when I will enter these values then Hibernate deletes all records from my USER table instead of check if entered values exist there...why? 我有一个奇怪的问题,我正在尝试在JavaFX应用程序中使用Hibernate,我想为了让Hibernate检查数据库中是否存在输入的值,但是...当我输入这些值时,Hibernate将从USER表中删除所有记录而不是检查输入的值是否存在...为什么? here is a code: 这是一个代码:

EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("clinic");
    EntityManager entityManager = entityManagerFactory.createEntityManager();

    User user = new User();

    user.setUsername(loginField.getText());
    user.setPassword(passwordField.getText());


    Query query = entityManager.createQuery("FROM User WHERE username= :username AND password= :password", User.class);
    query.setParameter("username", user.getUsername());
    query.setParameter("password", user.getPassword());

    String result = query.getResultList().toString();

    System.out.println(result);

    // if user exist then main window will appear:
  //root = FXMLLoader.load(getClass().getResource("/view/Main.fxml"));
    //stage = (Stage) logInButton.getScene().getWindow();
    //stage.setTitle("Przychodnia");
    //stage.setScene(new Scene(root, 750, 530));
    //stage.show();
    //return;


    entityManager.close();
    entityManagerFactory.close();

persistence.xml: persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence  http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="clinic" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <properties>
        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
        <property name="javax.persistence.jdbc.user" value="root" />
        <property name="javax.persistence.jdbc.password" value="root" />
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3307/przychodniadb" />
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
        <property name="hibernate.hbm2ddl.auto" value="create"/>
    </properties>
</persistence-unit>

摆脱<property name="hibernate.hbm2ddl.auto" value="create"/>因为它将在每次启动时重新创建数据库

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM