Tag: hibernate

什么是在Web应用程序中的jpa persistence.xml中引用jar文件的正确path?

persistence.xml如下所示: <persistence-unit name="testPU" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <non-jta-data-source>jdbc/test</non-jta-data-source> <jar-file>../../lib/app-services-1.0.jar</jar-file> <exclude-unlisted-classes>false</exclude-unlisted-classes> </persistence-unit> 这是一个Web项目,所以部署单位是一个战争文件。 我尝试引用的jar文件位于WEB-INF / lib /文件夹中, persistence.xml位于WEB-INF / classes / META-INF文件夹中。 部署时,它只是告诉我 “警告:无法find文件(忽略):file:… / .. / lib / app-services-1.0.jar”。 我也尝试了所有可能的path,比如../lib/app-services-1.0.jar,lib / app-services-1.0.jar 。 什么是正确的道路做到这一点?

如何使用延迟加载和分页查询Primefaces dataTable的数据

在我的JSF的数据表中,我实现了延迟加载,当我通过logging进行分页时,需要花费大约4或5秒的时间来执行下一组logging,实际上,执行结果应该花费不到一秒的时间。 这发生在我已经实施的方式,不知道我怎么能解决这个问题。 扩展了LazyDataModel的DataModel类 @Override public List<Request> load(int startingAt, int maxPerPage, String sortField, SortOrder sortOrder, Map<String, String> filters) { requestList = requestService.getRequest(startingAt, maxPerPage, sortField, sortOrder, filters); this.setRowCount(requestList.size()); if (requestList.size() > maxPerPage) { System.out.println("executing"); return requestList.subList(startingAt, startingAt + maxPerPage); } else { System.out.println("executing else "); return requestList; } return requestList; } 和dao课 @Override public List<Request> getRequest(int startingAt, […]

session.connection()在Hibernate上被弃用?

我们需要能够获得一个hibernate会话的关联java.sql.Connection 。 没有其他连接可以工作,因为此连接可能与正在运行的事务相关联。 如果session.connection()现在被弃用,我该怎么做?

Hibernate 3.5中的JPA 2.0 @OrderColumn注释

我正在试图在Hibernate 3.5中使用@OrderColumn注解 @OneToMany(mappedBy = "parent",fetch=FetchType.EAGER, cascade=CascadeType.ALL) @OrderColumn(name = "pos") private List<Children> childrenCollection; 检索数据时,一切正常。 但是我不能使它重新排列列表中的元素并将新的顺序保存到数据库中。

如何configurationSQL Server的hibernateconfiguration文件

这里是MySQL的configuration文件: <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost/test</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">zgy01</property> <property name="hibernate.connection.pool_size">100</property> <property name="show_sql">false</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!– Mapping files –> <mapping resource="model.hbm.xml"/> </session-factory> </hibernate-configuration> 为SQL Server 2005指定什么? 我是这样做的: <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property> <property name="hibernate.connection.url">com.microsoft.sqlserver.jdbc.SQLServerDriver</property> <property name="hibernate.connection.username">sa</property> <property name="hibernate.connection.password">lal</property> <property name="dialect">org.hibernate.dialect.SQLServerDialect</property> <property name="hibernate.connection.pool_size">100</property> <property name="show_sql">false</property> <!– Mapping files –> <mapping resource="model.hbm.xml"/> </session-factory> </hibernate-configuration> 我的问题更确切的是如何指定我必须连接到的数据库? 在MySQL中我曾经这样做: […]

Hibernate,@SequenceGenerator和allocationSize

当使用@SequenceGenerator时,我们都知道Hibernate的默认行为 – 它将实际的数据库序列增加1 ,将此值乘以50(默认的allocationSize值),然后将此值用作实体ID。 这是不正确的行为,并与说: allocationSize – (可选)从序列中分配序列号时要增加的数量。 要清楚:我不打扰生成的ID之间的差距。 我关心与底层数据库序列不一致的 ID。 例如:任何其他应用程序(例如使用普通JDBC)可能需要在从序列获得的ID下插入新行 – 但所有这些值可能已被Hibernate使用! 疯狂。 有人知道这个问题的任何解决scheme(没有设置allocationSize=1 ,从而降低性能)? 编辑: 把事情弄清楚。 如果最后插入的loggingID = 1 ,那么HB为其新实体BUT同时使用值51, 52, 53… :数据库中的序列值将被设置为2 。 当其他应用程序正在使用该序列时,这很容易导致错误。 另一方面:规范说(按照我的理解)数据库序列应该被设置为51 ,同时HB应该使用范围2, 3 … 50 更新: 正如Steve Ebersole在下面提到的:通过设置hibernate.id.new_generator_mappings=true可以启用我描述的行为(也是最直观的行为)。 谢谢你们。 更新2: 对于未来的读者,下面你可以find一个工作的例子。 @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "USERS_SEQ") @SequenceGenerator(name […]

设置SQL Server的Maven依赖关系

我正在开发一个portlet,让Hibernate能够访问SQL Server数据库。 我为它设置了Maven依赖关系 ,并试图findSQL Server连接器,就像我知道MySql拥有它一样。 如果我searchSQL Server连接器,我的Googlesearch仍然只提供Mysql。 什么是正确的maven依赖项值?

java.lang.ClassNotFoundException:org.hibernate.HibernateException

我正在用hibernate运行一个web应用程序,并陷入了这个exception。 请帮忙吗? java.lang.ClassNotFoundException:org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)at org.hibernate.HibernateException at com.forum.dao.TopicDAO.findAll(TopicDAO.java:43)at com.forum.servlets.Accueil.doGet(Accueil.java:23)at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain)的org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)上的javax.servlet.http.HttpServlet.service(HttpServlet.java:728) .java:210)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)at org.apache.catalina。 authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostVal ve.java:171)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)at org.apache.catalina .core.StandardEngineValve.invoke(StandardEngineValve.java:118)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1008 )org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:589)at org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:312)at java.util.concurrent。 ThreadPoolExecutor.runWorker(Unknown Source)java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)java.lang.Thread.run(Unknown Source) 这里是TopicDAO.findALL() public static List<Topic> findAll() { Session s = HibernateUtils.getSession(); //TopicDAO.java:43 Transaction tx = s.beginTransaction(); List<Topic> objects = null; Query q = […]

如何使用命名参数创build本机查询?

我想执行一个简单的本机查询,但它不起作用: @Autowired private EntityManager em; Query q = em.createNativeQuery("SELECT count(*) FROM mytable where username = :username"); em.setProperty("username", "test"); (int) q.getSingleResult(); 为什么我得到这个exception? org.hibernate.QueryException: Not all named parameters have been set: [username]

错误:java.lang.NoSuchMethodError:org.objectweb.asm.ClassWriter。<init>(I)V

我正在开发一个小的Spring应用程序。 我必须将学生信息的详细信息存储在数据库中。 我开发了一个SimpleFormController。 我使用了NetBeans + Hibernate mapping + Spring。 当我部署项目时,会发生以下错误。 我的spring-config-db-applicationContext.xml如下所示: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!– Hibernate session factory –> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <constructor-arg index="0"> <value>${driverClassName}</value> </constructor-arg> <constructor-arg index="1"> <value>${url}</value> </constructor-arg> <constructor-arg index="2"> <value>${username}</value> </constructor-arg> <constructor-arg index="3"> <value>${password}</value> </constructor-arg> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource"/> </property> <!– […]