Sql server 结合intelliJ IDEA使用Hibernate和MS SQL
我正在将Hibernate/JPA 2.0与SQL Server和IntelliJ IDEA结合使用。下面是我为测试连接而编写的示例代码:Sql server 结合intelliJ IDEA使用Hibernate和MS SQL,sql-server,hibernate,jpa,intellij-idea,persistence-unit,Sql Server,Hibernate,Jpa,Intellij Idea,Persistence Unit,我正在将Hibernate/JPA 2.0与SQL Server和IntelliJ IDEA结合使用。下面是我为测试连接而编写的示例代码: public class App { public static final String SELECT_QUERY = "select u from UsersEntity as u where u.userId = :userId"; public static void main(String[] args) {
public class App {
public static final String SELECT_QUERY = "select u from UsersEntity as u where u.userId = :userId";
public static void main(String[] args)
{
String userId = "1";
PersistenceProvider persistenceProvider = new HibernatePersistence();
EntityManagerFactory entityManagerFactory = persistenceProvider.createEntityManagerFactory("newPersistenceUnit", new HashMap());
EntityManager entityManager = entityManagerFactory.createEntityManager();
List<UsersEntity> users = entityManager.createQuery(SELECT_QUERY, UsersEntity.class).setParameter("userId", userId).getResultList();
System.out.println(users);
entityManager.close();
}
}
知道“newPersistenceUnit”是我的持久化单元的名称
编辑:
是的,它不符合我们的想法。当我使用IDEA中的控制台来查询数据时,它就工作了
我尝试使用下一个代码:
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
我收到与上述相同的消息,调试在以下位置停止:
sessionFactory = new Configuration().configure().buildSessionFactory();
Edit2:
我使用了EntityManager:
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("newPersistenceUnit");
EntityManager entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
List<AdminsEntity> result = entityManager.createQuery( "from AdminsEntity", AdminsEntity.class ).getResultList();
for ( AdminsEntity event : result ) {
logged = event;
}
entityManager.getTransaction().commit();
entityManager.close();
return logged;
这是我的persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="newPersistenceUnit">
<class>com.mobitrack.entities.GroupsEntity</class>
<class>com.mobitrack.entities.ZonesEntity</class>
<class>com.mobitrack.entities.AdminsEntity</class>
<class>com.mobitrack.entities.AlarmsEntity</class>
<class>com.mobitrack.entities.LocationsEntity</class>
<class>com.mobitrack.entities.UsersEntity</class>
<class>com.mobitrack.entities.UserGroupsEntity</class>
<class>com.mobitrack.entities.UserZonesEntity</class>
<class>com.mobitrack.entities.SettingsEntity</class>
<class>com.mobitrack.entities.MessagesEntity</class>
<class>com.mobitrack.entities.ProfilesEntity</class>
<class>com.mobitrack.entities.ProfileZonesEntity</class>
<properties>
<property name="hibernate.connection.url" value="jdbc:sqlserver://localhost:1433;databaseName=MOBITRACKDB"/>
<property name="hibernate.connection.driver_class" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<property name="hibernate.connection.username" value="admin"/>
<property name="hibernate.connection.password" value="password"/>
<property name="hibernate.query.factory_class"
value="org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory"/>
</properties>
</persistence-unit>
com.mobitrack.entities.GroupsEntity
com.mobitrack.entities.ZonesEntity
com.mobitrack.entities.adminstitity
com.mobitrack.entities.AlarmsEntity
com.mobitrack.entities.LocationsEntity
com.mobitrack.entities.UsersEntity
com.mobitrack.entities.UserGroupsEntity
com.mobitrack.entities.UserZoneEntity
com.mobitrack.entities.SettingsEntity
com.mobitrack.entities.MessagesEntity
com.mobitrack.entities.ProfilesEntity
com.mobitrack.entities.profileZoneEntity
有什么想法吗?这个问题可能是由方法断点引起的
请仔细检查是否未设置任何方法断点。禁用
toString()
设置中的求值和备用集合视图选项也可以提高调试器的性能。它是否在IDEA之外工作?能否显示yor persistenc.xml?您是否可以尝试使用“标准”方法创建实体管理器工厂:EntityManagerFactory emf=Persistence.createEntityManagerFactory(“newPersistenceUnit”);
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("newPersistenceUnit");
EntityManager entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
List<AdminsEntity> result = entityManager.createQuery( "from AdminsEntity", AdminsEntity.class ).getResultList();
for ( AdminsEntity event : result ) {
logged = event;
}
entityManager.getTransaction().commit();
entityManager.close();
return logged;
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("newPersistenceUnit");
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="newPersistenceUnit">
<class>com.mobitrack.entities.GroupsEntity</class>
<class>com.mobitrack.entities.ZonesEntity</class>
<class>com.mobitrack.entities.AdminsEntity</class>
<class>com.mobitrack.entities.AlarmsEntity</class>
<class>com.mobitrack.entities.LocationsEntity</class>
<class>com.mobitrack.entities.UsersEntity</class>
<class>com.mobitrack.entities.UserGroupsEntity</class>
<class>com.mobitrack.entities.UserZonesEntity</class>
<class>com.mobitrack.entities.SettingsEntity</class>
<class>com.mobitrack.entities.MessagesEntity</class>
<class>com.mobitrack.entities.ProfilesEntity</class>
<class>com.mobitrack.entities.ProfileZonesEntity</class>
<properties>
<property name="hibernate.connection.url" value="jdbc:sqlserver://localhost:1433;databaseName=MOBITRACKDB"/>
<property name="hibernate.connection.driver_class" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<property name="hibernate.connection.username" value="admin"/>
<property name="hibernate.connection.password" value="password"/>
<property name="hibernate.query.factory_class"
value="org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory"/>
</properties>
</persistence-unit>