- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 JBoss 服务器上使用 J2EE 构建一个网站,并且我有一个通过 JPA 连接到的数据库。
但是这一行:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("PersistenceService");
大约需要 3-4 秒。获得更快速度的正常做法是什么?
我读到:Hibernate faster EntityManagerFactory creation
但它在这里并不适用,因为我没有应用程序,我有一个网站,而且我没有动态 db-url,它总是一样的。
如果它是一个普通的应用程序,我只会在用户需要它之前在初始化时启动一个线程。但它是一个网站,所以我不能这样做。如果我将它存储在服务器上并让用户从前端调用它,我估计当同时有太多用户请求时会出现很大的问题。
这是它抛出的一些日志信息:
WARN HibernatePersistence:58 - HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
INFO Environment:239 - HHH000206: hibernate.properties not found
INFO Environment:346 - HHH000021: Bytecode provider name : javassist
DEBUG BasicTypeRegistry:146 - Adding type registration boolean -> org.hibernate.type.BooleanType@764e2837 // this line about 40 times
WARN DriverManagerConnectionProviderImpl:93 - HHH000402: Using Hibernate built-in connection pool (not for production use!)
11:52:30,793 INFO DriverManagerConnectionProviderImpl:166 - HHH000401: using driver [org.postgresql.Driver] at URL [jdbc:postgresql://...]
11:52:30,793 INFO DriverManagerConnectionProviderImpl:175 - HHH000046: Connection properties: {user=******, password=****}
11:52:30,793 INFO DriverManagerConnectionProviderImpl:180 - HHH000006: Autocommit mode: false
11:52:30,795 INFO DriverManagerConnectionProviderImpl:102 - HHH000115: Hibernate connection pool size: 20 (min=1)
11:52:32,895 INFO Dialect:145 - HHH000400: Using dialect: org.hibernate.dialect.HSQLDialect
11:52:32,913 INFO LobCreatorBuilder:123 - HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException
11:52:33,116 INFO ASTQueryTranslatorFactory:47 - HHH000397: Using ASTQueryTranslatorFactory
来 self 的 persistence.xml:
<persistence-unit name="PlayerService" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
<property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/>
编辑:
好的,我尝试使用
@PersistenceContext(unitName="PlayerService") private EntityManager em;
但是当我尝试使用它时 em 为空。我有合适的 jar 吗
<provider>org.hibernate.ejb.HibernatePersistence</provider>
和
<persistence-unit name="PlayerService" transaction-type="JTA">
?我有 hibernate-entitymanager-4.3.1.Final.jar。
我读到一些关于我只能在 bean 中使用 @PersistenceContext(...) 的内容,但是如何将类声明为 bean?
最佳答案
您尝试做的事情通常在 J2SE 应用程序中使用,您需要调用 Persistence bootstrap 来获取对 EntityManagerFactory 的引用并自己完成所有循环,但在 J2EE 中,这种方法不以这种方式使用。
您应该考虑用户容器管理的EntityManager
When a container-managed entity manager is used, the lifecycle of the persistence context is always managed automatically, transparently to the application, and the persistence context is propagated with the JTA transaction.
A container-managed persistence context may be defined to have either a lifetime that is scoped to a single transaction or an extended lifetime that spans multiple transactions, depending on the PersistenceContextType that is specified when its entity manager is created. This specification refers to such persistence contexts as transaction-scoped persistence contexts and extended persistence contexts respectively.
考虑更改您的实现以使用此方法,这样 EntityManager 就可以使用 @PersistenceContext 来使用,并且开始使用 EM 的时间不会超过毫秒。
@PersistenceContext(unitName="")
EntityManager em;
更改它非常简单,只需将 persistence.xml 添加到您的 Web 应用程序的 META-INF 中,确保您有提供的 jar。
The persistence scope of the container managed entity manager is Transaction by default. The transaction-type is always JTA.
为了能够使用 EJB,请使用此方法。
@Stateless
public class TriggerPersister {
@PersistenceContext(unitName="PlayerService")
private EntityManager entityManager;
不要忘记放置 META-INF/persistence.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<!-- Add the persistence context for OrderDetail -->
<persistence-unit name="PlayerService"
transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>jdbc/myDs</jta-data-source>
<class>our.class<class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect" />
<property name="hibernate.hbm2ddl.auto" value="validate" />
<property name="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.ImprovedNamingStrategy" />
<property name="hibernate.connection.charSet" value="UTF-8" />
<property name="hibernate.show_sql" value="true" />
</properties>
</persistence-unit>
您在 jboss 的部署文件夹中应该有一个有效的数据源。 jta-data-source
标记指示将使用该应用程序的内容
关于java - 对于主页、J2EE,JPA Entitymanagerfactory 花费了 3-4 秒的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22012233/
在C语言中,当有变量(假设都是int)i小于j时,我们可以用等式 i^=j^=i^=j 交换两个变量的值。例如,令int i = 3,j = 5;在计算 i^=j^=i^=j 之后,我有 i = 5,
我为以下问题编写了以下代码: 给定一个由 N 个正整数组成的序列 A,编写一个程序来查找满足 i > A[j]A[i](A[i] 的 A[j] 次方 > A[j] 的 A[i] 次方)。 我的代码通过
这个表达式是从左到右解析的吗?我试图解释解析的结果,但最后的结果是错误的。 int j=10, k=10; j+=j-=j*=j; //j=j+(j-=j*=j)=j+(j-j*j) k+=k*=
给定一个整数数组 A ,我试图找出在给定位置 j ,A[j] 从每个 i=0 到 i=j 在 A 中出现了多少次。我设计了一个如下所示的解决方案 map CF[400005]; for(int i=0
你能帮我算法吗: 给定 2 个相同大小的数组 a[]和 b[]具有大于或等于 1 的整数。 查找不相等的索引 i和 j ( i != j ) 使得值 -max(a[i]*b[i] + a[i] * b
每次用J的M.副词,性能显着下降。因为我怀疑艾弗森和许比我聪明得多,我一定是做错了什么。 考虑 Collatz conjecture .这里似乎有各种各样的内存机会,但不管我放在哪里M. ,性能太差了
假设一个包含各种类型的盒装矩阵: matrix =: ('abc';'defgh';23),:('foo';'bar';45) matrix +---+-----+--+|abc|defgh|23|+
是否有可能对于两个正整数 i 和 j,(-i)/j 不等于 -(i/j)?我不知道这是否可能......我认为这将是关于位的东西,或者 char 类型的溢出或其他东西,但我找不到它。有什么想法吗? 最
假设两个不同大小的数组: N0 =: i. 50 N1 =: i. 500 应该有一种方法可以获得唯一的对,只需将两者结合起来即可。我发现的“最简单”是: ]$R =: |:,"2 |: (,.N0)
我是 J 的新用户,我只是想知道 J 包中是否实现了三次样条插值方法? 最佳答案 我自己不熟悉,但是我确实安装了所有的包,所以 $ rg -l -i spline /usr/share/j/9.02
在 Q/kdb 中,您可以使用 ': 轻松修改动词,它代表每个优先级。它会将动词应用于一个元素及其之前的邻居。例如 =': 检查值对是否相等。在 J 中,您可以轻松折叠 /\ 但它是累积的,是否有成对
嗨,我有一个 4x4 双矩阵 A 1+2i 2-1i -3-2i -1+4i 3-1i -3+2i 1-3i -1-3i 4+3i 3+5i 1-2i -1-4i
刚刚发现 J 语言,我输入: 1+^o.*0j1 I expected the answer to be 0 ,但我得到了 0j1.22465e_16。虽然这非常接近于 0,但我想知道为什么 J 应该
这个问题在这里已经有了答案: With arrays, why is it the case that a[5] == 5[a]? (20 个答案) 关闭 3 年前。 我正在阅读“C++ 编程语言”
当第一行是 1, 1/2 , 1/3 ....这是支持该问题的图像。 是否存在比朴素的 O(n^2) 方法更有效的方法? 我在研究伯努利数时遇到了这个问题,然后在研究“Akiyama-Tanigawa
我写了一段Java代码,它在无限循环中运行。 下面是代码: public class TestProgram { public static void main(String[] args){
for (int i = n; i > 0; i /= 2) { for (int j = 0; j 0; i /= 2) 的第一个循环结果 O(log N) . 第二个循环for (int
如问题中所述,需要找到数组中 (i,j) 对的总数,使得 (1) **ia[j]** 其中 i 和 j 是数组的索引。没有空间限制。 我的问题是 1) Is there any approach w
for l in range(1,len(S)-1): for i in range(1,len(S)-l): j=i+l for X in N:
第二个for循环的复杂度是多少?会是n-i吗?根据我的理解,第一个 for 循环将执行 n 次,但第二个 for 循环中的索引设置为 i。 //where n is the number elemen
我是一名优秀的程序员,十分优秀!