标签: entitymanager

Glassfish JPA:注入EntityManager的问题

我是Java EE的新手.我试着运行一些第一个例子(JPA).我正在使用Glassfish v3.麻烦的是我没有让App Server注入EntityManager.听到了一个例子http://www.adam-bien.com/roller/abien/entry/ejb_3_persistence_jpa_for ,我用JSP客户端进行了扩展.

实体:


package beans;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Book {

    @Id
    @GeneratedValue
    private Long id;
    private String title;
    private String subtitle;

    public Book() {
    }

    public Book(String title) {
        this.title = title;
    }
}

Run Code Online (Sandbox Code Playgroud)

BookService接口:


package beans;
import javax.ejb.Local;

@Local
public interface BookService {
    Book createOrUpdate(Book book);
    void remove(Book book);
    Book find(Object id);
}
Run Code Online (Sandbox Code Playgroud)

BookServiceBean:


package beans;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
public class BookServiceBean implements BookService { …
Run Code Online (Sandbox Code Playgroud)

java jpa glassfish entitymanager java-ee

1
推荐指数
1
解决办法
1万
查看次数

Spring @PersistenceContext 如何在我的 GenericDao 中手动注入实体管理器

大家好:我阅读了关于这一点的 spring 参考。

我会选择在我的 DAO 中使用 @PersistenceContext 来注入共享事务实体管理器,但是由于我在指向 2 个不同持久性单元的两个 entityManagerFactories 上使用了 GenericDaoJpaImpl 模式,所以我不能使用它。

所以现在在我的应用程序中我有这个配置:

entityManagerFactoryies:

<bean id="entityManagerFactoryIban0" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="persistenceXmlLocation" value="classpath:META-INF/contratto-persistence-iban0.xml" />
    </bean>

    <bean id="entityManagerFactoryCont0" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="persistenceXmlLocation" value="classpath:META-INF/contratto-persistence-cont0.xml" />
    </bean>

    <bean abstract="true" id="abstractDaoJpaImplIban0" lazy-init="false">
        <property name="entityManagerFactory" ref="entityManagerFactoryIban0" />
    </bean>

    <bean abstract="true" id="abstractDaoJpaImplCont0" lazy-init="false">
        <property name="entityManagerFactory" ref="entityManagerFactoryCont0" />
    </bean>
Run Code Online (Sandbox Code Playgroud)

然后我的每个 DAO 都是 GenericDaoImpl 的一个实例:

@Repository
public class GenericDaoJpaImpl<T, ID extends Serializable> implements GenericDao<T, ID> {
    private Class<T> entityClass;

    private EntityManagerFactory entityManagerFactory;

    public void setEntityManagerFactory(EntityManagerFactory entityManagerFactory) {
        this.entityManagerFactory = entityManagerFactory; …
Run Code Online (Sandbox Code Playgroud)

spring entitymanager

1
推荐指数
1
解决办法
6431
查看次数

在EntityManager关闭后尝试加载延迟关系

我有三个spring + JPA项目......一个基础项目A,一个插件项目B和实际项目C.在C中,两个其他项目都作为A.jar和B.jar导入.每个项目都有自己的ApplicationContext.xml.叶子项目即C将其persistence.xml置于自定义位置,如proeject-A中的appcontext.xml中所述(启动项目A在整个类路径中查找appcontext.xml和persistence.xml,因此能够从B加载xmls)和C).

下面是我的配置,ApplicationContext.xml - 在项目A中

<bean id="jpaQueryManager" class="com.motherframework.base.dao.jpa.JPAQueryManager">
    <property name="jpaTemplate" ref="jpaTemplate"/>
</bean>

<bean id="jpaTemplate" class="org.springframework.orm.jpa.JpaTemplate">
    <property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <!-- <property name="persistenceUnitManager" ref="pum"/>
    <property name="persistenceUnitName" value="SchoolWebsitePersistenceUnit"/> -->
    <property name="persistenceXmlLocation" value="classpath*:configuration/xml/persistence.xml"/>
    <!-- <property name="persistenceUnitPostProcessors">
      <list>
        <bean class="com.motherframework.base.dao.jpa.EntityScanner"/>
      </list>
    </property> -->
    <property name="dataSource"><ref bean="dataSource"/></property>
    <property name="jpaVendorAdapter">
      <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
        <property name="showSql" value="true"/>
        <property name="generateDdl" value="true"/>
        <property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect"/>
      </bean>
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

这是我的persistence.xml

<persistence-unit name="SchoolWebsitePersistenceUnit" transaction-type="RESOURCE_LOCAL">

    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.motherframework.plugin.school.entity.Account</class>
    <class>com.motherframework.plugin.school.entity.Module</class>
    <class>com.motherframework.plugin.school.entity.NavigationMenu</class>
    <class>com.motherframework.plugin.school.entity.User</class>


    <properties>
        <property name="dialect" value="org.hibernate.dialect.SQLServerDialect"/>
        <property name="hibernate.connection.autocommit" value="true"/>
        <property name="hibernate.cache.provider_class" …
Run Code Online (Sandbox Code Playgroud)

spring hibernate jpa lazy-loading entitymanager

1
推荐指数
1
解决办法
3241
查看次数

EntityManager为null

我是EJB新手,创建一个有趣/学习EJB的应用程序以下是代码.

@Entity
@Table(name = "PERSON", schema = "experiment")
@NamedQuery(name = "Person.fetchAllPerson" , query = "select p from Person p")
public class Person implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    private Long id;
    @Column(name = "name", length = 500)
    private String name;
    @Column(name = "age")
    private Integer age;

    public Long getId() {
        return id;
    }

//    public void setId(Long id) {
//        this.id = id;
//    }

    public String getName() { …
Run Code Online (Sandbox Code Playgroud)

java ejb jpa entitymanager zk

1
推荐指数
1
解决办法
1万
查看次数

注意:类Doctrine\ORM\EntityManager的对象无法转换为int

我在尝试更新对象时偶然发现了这个错误,但找不到任何解释.这是我的代码:

实体

    namespace Mnv\CoreBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Class UtilitatiVariabile
 * @package Mnv\CoreBundle\Entity
 *
 * @ORM\Table(name="utilitati_variabile")
 * @ORM\Entity(repositoryClass="Mnv\CoreBundle\Entity\Repository\UtilitatiVariabileRepository")
 */
class UtilitatiVariabile {

    /**
     * @var integer
     *
     * @ORM\Id()
     * @ORM\GeneratedValue(strategy="AUTO")
     * @ORM\Column(type="integer")
     */
    protected $id;

    /**
     * @var float
     *
     * @ORM\Column(type="decimal", precision=10, scale=6, nullable=true)
     */
    protected $coeficient;

    /**
     * @var float
     *
     * @ORM\Column(type="decimal", precision=10, scale=2, nullable=true)
     */
    protected $kwh;

    /**
     * @var float
     *
     * @ORM\Column(name="original_kwh", type="decimal", precision=10, scale=2, nullable=true)
     */
    protected $originalKwh;

    /**
     * …
Run Code Online (Sandbox Code Playgroud)

doctrine entitymanager symfony

1
推荐指数
1
解决办法
1158
查看次数

EntityManager 和 DAO 有什么区别?

EntityManager 和 DAO 有什么区别?是一样的吗?

java dao entitymanager jakarta-ee

1
推荐指数
1
解决办法
1278
查看次数

在Java中使用EntityManager返回计数本机查询的结果?

我有以下内容 SQL Query :

SELECT COUNT(*) FROM DOG where ID = 'SampleId';
Run Code Online (Sandbox Code Playgroud)

我试着写这个java:

public int returnCountOfDogTable(String id){

        String sql= "SELECT COUNT(*) FROM DOG WHERE ID =:id";
        Query query = persistence.entityManager().createNativeQuery(sql);
        query.setParameter("id", id);
        List<Integer> resultList = query.getResultList();
        int result = resultList.get(0);
        return result;
    }
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个例外:

java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Integer
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

java int integer entitymanager classcastexception

1
推荐指数
2
解决办法
1万
查看次数

Null EntityManager使用@PersistenceContext

我正在尝试使用springboot的简单编码,使用entitymanager中的@PersistenceContext,在mysql中创建一个对象,但我得到的是我的entitymanager对象为null并且不确定原因,因为正在使用的方法entitymanager有@transaction注释.

提前致谢!

这是我调用插入数据的方法的代码:

import org.hibernate.service.spi.ServiceException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

@Component
public class VehicleService implements IVehicleService {

    @Autowired
    IFileService fileService;

    @Transactional
    public void addVehicle(Vehicle vehicle) throws ServiceException{
        Vehicle vehicleNew = new Vehicle();
        vehicleNew.setName(vehicle.getName());
        vehicleNew.setType(vehicle.getType());
        vehicleNew.setEnrollment(vehicle.getEnrollment());
        try{
            fileService.createVehicle(vehicle);
        }catch(Exception e){

        }
    }   
}

import org.hibernate.service.spi.ServiceException;
import org.springframework.transaction.annotation.Transactional;

public interface IFileService {

    @Transactional
    void createVehicle(Vehicle vehicle) throws ServiceException;

}
Run Code Online (Sandbox Code Playgroud)

这是我调用entitymanager的地方,并且始终为null:

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.springframework.stereotype.Component;

@Component
public class FileService implements IFileService{

    @PersistenceContext
    protected EntityManager entityManager;

     public void createVehicle(Vehicle vehicle) { …
Run Code Online (Sandbox Code Playgroud)

java mysql entitymanager spring-transactions

1
推荐指数
1
解决办法
1730
查看次数

Symfony2-在$ em-&gt; remove()上捕获异常

我试图在执行时捕获异常:

try {
    $em->remove($education);
    $em->flush();
} catch(PDOException $e) {
    var_dump($e->getMessage());
    die;
}
Run Code Online (Sandbox Code Playgroud)

我也尝试了\Exception\Doctrine\ORM\ORMException,但没有一个起作用。

我得到的是相同的错误,而不是转储异常消息,我试图避免捕获异常:

[3/3] ForeignKeyConstraintViolationException:执行“从Trainee_education WHERE id =?中删除”时发生异常。带有参数[2]:

SQLSTATE [23000]:违反完整性约束:1451无法删除或更新父行:外键约束失败(trainingexperienceinternship,CONSTRAINT FK_10D1B00C2CA1BD71 FOREIGN KEY(education_id)参考trainee_educationid))

我知道为什么我的约束失败了,没有新内容。但是我想得到一个例外,这样我可以通知用户他无法删除对象,因为他在创建关系之前曾使用过该对象。

doctrine exception entitymanager symfony doctrine-orm

1
推荐指数
1
解决办法
1813
查看次数

Quarkus 运行时不注入 EntityManager

我尝试过@PersistenceContext@PersistenceUnit@Inject组合,但没有任何效果。@Inject 使 maven-quarkus-plugin 构建失败:

[错误] 由:javax.enterprise.inject.UnsatisfiedResolutionException: 类型 javax.persistence.EntityManager 和限定符 [@Default] 的不满意依赖项引起

我尝试过使用和不使用persistence.xml。我的数据源和 application.properties 工作正常,因为我可以只注入 AgroalDataSource 并执行直接 JDBC,但我想移植我的 JPA 实体类并使用它们。

我的父模块 pom

<!-- versions set by quarkus-bom, but they don't pass in, when changing quarkus version, update this from quarkus bom -->
<properties>
    <quarkus.version>1.0.0.CR1</quarkus.version>

    <agroal.version>1.7</agroal.version>
    <jakarta.enterprise.cdi-api.version>2.0.2</jakarta.enterprise.cdi-api.version>
    <jboss-jaxrs-api_2.1_spec.version>2.0.1.Final</jboss-jaxrs-api_2.1_spec.version>
    <jboss-logging.version>3.3.2.Final</jboss-logging.version>
    <jboss-threads.version>3.0.0.Final</jboss-threads.version>
    <smallrye-config.version>1.3.9</smallrye-config.version>
    <wildfly-common.version>1.5.0.Final-format-001</wildfly-common.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-universe-bom</artifactId>
            <version>${quarkus.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
Run Code Online (Sandbox Code Playgroud)

我的绒球

<dependencies>
    <dependency>
        <groupId>com.lmco.is3.cs</groupId>
        <artifactId>datatypes</artifactId>
        <exclusions>
            <exclusion>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
            </exclusion>
        </exclusions>
        <version>1.0-SNAPSHOT</version> …
Run Code Online (Sandbox Code Playgroud)

jpa entitymanager quarkus

1
推荐指数
1
解决办法
2735
查看次数