最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

新建springboot項(xiàng)目時(shí),entityManagerFactory報(bào)錯(cuò)的解決

 更新時(shí)間:2022年01月17日 16:01:39   作者:二星程序飼養(yǎng)員  
這篇文章主要介紹了新建springboot項(xiàng)目時(shí),entityManagerFactory報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

新建springboot項(xiàng)目entityManagerFactory報(bào)錯(cuò)

在這里插入圖片描述

解決辦法

1.查看注解引入是否正確,實(shí)體類和jpa的。

2.檢查包的引用是否有沖突

spring生成EntityManagerFactory三種方式

1.LocalEntityManagerFactoryBean

只是簡(jiǎn)單環(huán)境中使用。它使用JPA PersistenceProvider自動(dòng)檢測(cè)機(jī)制( according to JPA's Java SE  bootstrapping ),并且大多數(shù)情況下,你只能定義一下persistence unit name

例如:

<beans>
<bean id="myEmf" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName" value="myPersistenceUnit"/>
</bean>
</beans>

2.從JNDI獲取EntityManagerFactory

這個(gè)選項(xiàng)是當(dāng)你應(yīng)用發(fā)布在javaee5的服務(wù)器中。你可以參閱自己應(yīng)用服務(wù)器文檔,如何發(fā)布一個(gè)自定義的JPA provider到你的應(yīng)用服務(wù)器中。

例:

<beans>
<jee:jndi-lookup id="myEmf" jndi-name="persistence/myPersistenceUnit"/>
</beans>

當(dāng)javaee服務(wù)器啟動(dòng)時(shí),會(huì)自動(dòng)檢測(cè)persistence units。實(shí)際上,是檢測(cè)應(yīng)用包中的META-INF/persistence.xml 文件和web.xml中的persistence-unit-ref,以及定義的environment naming。我理解就是JNDI的name。

一般應(yīng)用情景是:

在META-INF/persistence.xml中 使用<jta-data-source>java:/ MySqlDS</jta-data-source> 獲取容器發(fā)布的Datesource。

transactions是使用的javaee容器支持的JTA系統(tǒng),例如tomcat中,可以這樣

如果你的項(xiàng)目準(zhǔn)備部署在tomcat上,要支持jta,則需把相關(guān)的包放在tomcat/lib包下

1)jndi配置,可以把jndi的配置放置在  tomcat/conf/Catalina/域名(如localhost)/項(xiàng)目名.xml

文件的Context節(jié)點(diǎn)下,如下:

? ?<Resource name="" auth="Container" type="javax.sql.DataSource"?
? ? ? ?username=""?
? ? ? ?password=""
? ? ? ?driveClassName="oracle.jdbc.driver.OracleDriver"?
? ? ? ?url="" maxActive="45" maxIdle="25"/>

 jndi也可以配置在server.xml,context.xml中 

2)jta UserTransaction配置 

在server.xml文件GlobalNamingResources節(jié)點(diǎn)下配置如下: 

? ? <!-- Resource configuration for UserTransaction
? ? ? ? ?use JOTM -->
? ? <Resource name="UserTransaction" auth="Container"
? ? ? ? type="javax.transaction.UserTransaction"
? ? ? ? factory="org.objectweb.jotm.UserTransactionFactory"
? ? ? ? jotm.timeout="60"/>

然后在 項(xiàng)目名.xml 文件的context節(jié)點(diǎn)下加:

? ?<ResourceLink name="UserTransaction"
? ? ? ? ? ? global="UserTransaction"
? ? ? ? ? ? type="javax.transaction.UserTransaction"/>?
?

 SPRING 僅僅做的是是把EntityManagerFactory通過(guò)依賴注入到應(yīng)用的object中。如果要管理事務(wù),則使用JtaTransactionManager。

3.LocalContainerEntityManagerFactoryBean

這個(gè)選項(xiàng)中,spring扮演了容器的角色。完全掌管JPA。

LocalContainerEntityManagerFactoryBean會(huì)根據(jù)persistence.xml創(chuàng)造一個(gè)PersistenceUnitInfo實(shí)現(xiàn)。

<beans>
<bean id="myEmf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="someDataSource"/>
<property name="loadTimeWeaver">
<bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver"/>
</property>
</bean>
</beans>

不是所有的JPA provider都需要load-time weaving。hibernate就不需要。呵呵。 <property name="loadTimeWeaver">這個(gè)就不是必須的了。。

Persistence.xml配置:

<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<persistence-unit name="myUnit" transaction-type="RESOURCE_LOCAL">
<mapping-file>META-INF/orm.xml</mapping-file>
<exclude-unlisted-classes/>
</persistence-unit>
</persistence>

如何處理多個(gè)persistence units。spring提供了PersistenceUnitManager統(tǒng)一管理。

<bean id="pum" class="org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager">
<property name="persistenceXmlLocations">
<list>
<value>org/springframework/orm/jpa/domain/persistence-multi.xml</value>
<value>classpath:/my/package/**/custom-persistence.xml</value>
<value>classpath*:META-INF/persistence.xml</value>
</list>
</property>
<property name="dataSources">
<map>
<entry key="localDataSource" value-ref="local-db"/>
<entry key="remoteDataSource" value-ref="remote-db"/>
</map>
</property>
<!-- if no datasource is specified, use this one -->
<property name="defaultDataSource" ref="remoteDataSource"/>
</bean>
<bean id="emf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitManager" ref="pum"/>
<property name="persistenceUnitName" value="myCustomUnit"/>
</bean>

dataSources中的key是persistence.xml中配置的datasource名字,value-ref是spring管理的數(shù)據(jù)源。

另外:

EntityManagerFactory是線程安全的,但是EntityManager不是。

public class ProductDaoImpl implements ProductDao {
private EntityManagerFactory emf;
@PersistenceUnit
public void setEntityManagerFactory(EntityManagerFactory emf) {
this.emf = emf;
}
public Collection loadProductsByCategory(String category) {
EntityManager em = this.emf.createEntityManager();
try {
Query query = em.createQuery("from Product as p where p.category = ?1");
query.setParameter(1, category);
return query.getResultList();
}
finally {
if (em != null) {
em.close();
}
}
}
}

這樣使用有個(gè)最大問(wèn)題就是每次都要?jiǎng)?chuàng)建一個(gè)新的entityManager。那么該怎么辦?

你可以通過(guò)@PersistenceContext獲取一個(gè)transactional EntityManager("shared EntityManager")。為什么稱它為transactional?因?yàn)樗且粋€(gè)共享的以及線程安全的當(dāng)前的transactional EntityManager的一個(gè)代理。

public class ProductDaoImpl implements ProductDao {
@PersistenceContext
private EntityManager em;
public Collection loadProductsByCategory(String category) {
Query query = em.createQuery("from Product as p where p.category = :category");
query.setParameter("category", category);
return query.getResultList();
}
}

結(jié)束了。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java設(shè)計(jì)模式之java中介者模式詳解

    Java設(shè)計(jì)模式之java中介者模式詳解

    這篇文章主要為大家詳細(xì)介紹了23種設(shè)計(jì)模式之java中介者模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-09-09
  • Java實(shí)現(xiàn)石頭剪刀布游戲

    Java實(shí)現(xiàn)石頭剪刀布游戲

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)石頭剪刀布游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • idea中寫sql語(yǔ)句沒(méi)有提示字段的問(wèn)題

    idea中寫sql語(yǔ)句沒(méi)有提示字段的問(wèn)題

    在IDEA中編寫SQL時(shí)如果沒(méi)有字段提示,通常是因?yàn)闆](méi)有設(shè)置注入語(yǔ)言,解決方法是通過(guò)快捷鍵Alt+Enter選擇“注入語(yǔ)言或引用”,然后選擇相應(yīng)的數(shù)據(jù)庫(kù)(如MySQL),之后重新輸入SQL語(yǔ)句即可,此方法可以有效解決IDEA中SQL語(yǔ)句提示問(wèn)題,提高開發(fā)效率
    2024-09-09
  • Java使用Soap方式調(diào)用WebService接口代碼示例

    Java使用Soap方式調(diào)用WebService接口代碼示例

    Java調(diào)用WebService接口是指通過(guò)Java語(yǔ)言來(lái)訪問(wèn)并與WebService進(jìn)行交互,WebService是一種基于Web的服務(wù)架構(gòu),它通過(guò)標(biāo)準(zhǔn)的XML和HTTP協(xié)議來(lái)提供服務(wù),這篇文章主要給大家介紹了關(guān)于Java使用Soap方式調(diào)用WebService接口的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • Mybatis示例講解注解開發(fā)中的單表操作

    Mybatis示例講解注解開發(fā)中的單表操作

    這篇文章主要介紹了使用Mybatis對(duì)數(shù)據(jù)庫(kù)進(jìn)行單表操作的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 一文詳解Java中的可變對(duì)象(Mutable)與不可變對(duì)象(Immutable)

    一文詳解Java中的可變對(duì)象(Mutable)與不可變對(duì)象(Immutable)

    如何在 Java 中創(chuàng)建不可變對(duì)象?我以前以為所有對(duì)象都是不可變的,因?yàn)槿绻愀淖円粋€(gè) String 實(shí)例的內(nèi)容,它總是會(huì)創(chuàng)建一個(gè)新的 String 對(duì)象并指向該對(duì)象,在本文中,我不僅將分享在 Java 中Immutable的步驟,還將討論可變對(duì)象與不可變對(duì)象及其優(yōu)缺點(diǎn)
    2023-11-11
  • 詳細(xì)聊一聊JavaWeb中的Request和Response

    詳細(xì)聊一聊JavaWeb中的Request和Response

    這篇文章主要給大家介紹了關(guān)于JavaWeb中Request和Response的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-02-02
  • 移動(dòng)指定文件夾內(nèi)的全部文件

    移動(dòng)指定文件夾內(nèi)的全部文件

    移動(dòng)指定文件夾內(nèi)的全部文件
    2009-01-01
  • Springboot動(dòng)態(tài)配置AOP切點(diǎn)詳解

    Springboot動(dòng)態(tài)配置AOP切點(diǎn)詳解

    這篇文章主要介紹了Springboot動(dòng)態(tài)配置AOP切點(diǎn)詳解,Springboot 可以定義注解切點(diǎn)去攔截注解修飾的類方法以及execution(xxxx)切點(diǎn)去攔截具體的類方法,默認(rèn)情況下我們都會(huì)使用注解@PointCut去定義切點(diǎn),然后定義切面攔截切點(diǎn),需要的朋友可以參考下
    2023-09-09
  • Java中多態(tài)性的實(shí)現(xiàn)方式

    Java中多態(tài)性的實(shí)現(xiàn)方式

    這篇文章主要介紹了Java中多態(tài)性的實(shí)現(xiàn)方式,什么是多態(tài)?通過(guò)簡(jiǎn)單的一道題目幫大家理解java多態(tài)性,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09

最新評(píng)論

静乐县| 淮北市| 饶河县| 景宁| 朝阳县| 新安县| 吉木萨尔县| 安宁市| 屯留县| 开平市| 漳平市| 大渡口区| 东莞市| 杭州市| 北宁市| 鄂温| 绥德县| 绵阳市| 宁安市| 凉城县| 汉川市| 镇坪县| 灵川县| 霍山县| 正阳县| 连城县| 静海县| 隆德县| 永城市| 班玛县| 渑池县| 清镇市| 秦皇岛市| 曲靖市| 平乡县| 泰和县| 峨山| 新沂市| 桃源县| 宝兴县| 南充市|