草庐IT

java - 避免通过 JPA 将 'null' 值插入数据库表

我从JPA2开始,到目前为止感觉很舒服。但是当为具有默认值的NONNULL数据库字段保留具有null属性值的实体时,我遇到了问题。我希望能够将实体属性保留为空,并让数据库插入默认值。我当前的设置是带有PostgreSQL的openJPA。我有这个VERSION数据库表(Vorgabewert=默认值):Spalte|Typ|Attribute----------------+-----------------------------+----------------------------status_|smallint|notnullVorgabewert0time_|timesta

java - JPA 与 JTA : Persist entity and merge cascaded child entities

我与以下实体类具有双向一对多关系:0或1个客户0个或多个产品订单当持久化客户端实体时,我希望关联的产品订单实体也被持久化(因为它们到“父”客户端的外键可能已更新)。当然,所有必需的CASCADE选项都在客户端设置。但是,如果在引用现有产品订单时第一次持久化新创建的客户端,则它不起作用,如在这种情况下:产品订单“1”已创建并保留。工作正常。已创建客户“2”并将产品订单“1”添加到其产品订单列表中。然后它被坚持。不起作用。我尝试了几个方法,但没有一个显示出预期的结果。请参阅下面的结果。我在这里阅读了所有相关问题,但它们对我没有帮助。我在GlassFish3.1.2上的ApacheDerby

java - 当我们需要多个 EntityManager 时?

我正在学习JPA,有一个问题:在哪些情况下我们的应用程序中需要多个EntityManager?我知道的两种情况如下:当我们的应用程序是一个多线程应用程序并且多个线程需要JPA事务时,因为EntityManager不是线程安全的,我们需要一个EntityManager线程。当任何线程需要多个并发事务时,我们在该线程中需要多个EntityManager,因为EntityManager之间存在一对一的关系和EntityTransaction。Q1。当我们需要多个EntityManager时,还有其他情况吗?Q2。据我了解,每个PersitenceUnit应该只有一个EntityManager

java - JPA 一对多 : List vs Set

我有两个实体:UserAccount和Notification。它们具有如下所示的关系。publicclassUserAccount{@Id@Column(name="USER_NAME")privateStringemailId;@OneToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL)@JoinTable(name="USERS_NOTIFICATIONS",joinColumns={@JoinColumn(name="USER_NAME")},inverseJoinColumns={@JoinColumn(name="NOT

java - 如何使用接口(interface)和 JPA

首先我要说的是,我对JavaEE还很陌生,而且我还没有很强的Java理论背景。我无法理解如何在Java中将JPA与interfaces一起使用。为了说明我发现的难点,我创建了一个非常简单的示例。如果我有两个简单的接口(interface)Person和Pet:publicinterfacePerson{publicPetgetPet();publicvoidsetPet(Petpet);}publicinterfacePet{publicStringgetName();}还有一个实体PersonEntity实现了Person以及一个PetEntity实现了Pet:@Entitypubl

java - 如何使用包含关键字的属性创建 Spring JPA 存储库 findBy 查询?

这是我的问题的一个简化示例。我有这个存储库和实体类。publicinterfaceThingRepositoryextendsJpaRepository{ThingEntityfindByFooInAndBar(StringfooIn,Stringbar);}@EntitypublicclassThingEntity{@Column(name="FOO_IN",nullable=false,length=1)privateStringfooIn;publicStringgetFooIn(){returnfooIn;}publicsetFooIn(StringfooIn){this.fo

java - Spring Data JPA 的 findFirst 和 findTop 之间的技术差异

我最近开始使用Springdatajpa。如果有人能阐明技术差异SpringDataJPAfindFirst和findTop。区别,用法。谢谢 最佳答案 来自SpringDataJPA-ReferenceDocumentation,限制查询结果可以通过关键字first或top来限制查询方法的结果,这两个关键字可以互换使用。可以将可选数值附加到top/first以指定要返回的最大结果大小。如果省略数字,则假定结果大小为1。使用Top和First限制查询的结果大小UserfindFirstByOrderByLastnameAsc();U

javax.naming.NameNotFoundException : Name is not bound in this Context. 无法找到

我正在尝试找出为什么我的Web应用程序会抛出javax.naming.NameNotFoundException:Name[flexeraDS]isnotboundinthisContext.Unabletofind[flexeraDS].当我正在从中复制配置的姐妹安静地运行时。我有:通过右键单击并选择“新持久性”从netbeans创建一个新的持久性,我不关心我提供的实际值,但我只需要在正确的目录中创建persistence.xml文件。如下所示编辑我的context.xml以匹配工作姊妹项目中的那个编辑我的web.xml以包含如下所示的资源数据源如下所示再次编辑我的persisten

java - 没有单独的连接表的 Hibernate @OneToMany

考虑以下数据库模式:createtableUserGroup(idintnotnullauto_increment,namevarchar(200),primarykey(id));createtableUser(idintnotnullauto_increment,namevarchar(200),groupIdintnotnull,primarykey(id));User.groupId=UserGroup.id,所以一个用户只能是一个组的成员,但是一个用户组可以存在多个用户。到目前为止很好,让我们在Hibernate中创建实体。这是User:@Entity@Table(name=

java - 如何使用 JPA(或至少使用 Hibernate)处理大型数据集?

我需要让我的网络应用程序处理非常庞大的数据集。目前,我得到OutOfMemoryException或1-2分钟后生成的输出。简单来说,假设我们在DB中有2个表:Worker和WorkLog,第一个表大约有1000行,第二个表有10000000行一。后一个表有几个字段,包括“workerId”和“hoursWorked”字段等。我们需要的是:计算每个用户的总工作时数;每个用户的工作时段列表。对于普通SQL中的每个任务,最直接的方法(IMO)是:1)selectWorker.name,sum(hoursWorked)fromWorker,WorkLogwhereWorker.id=Work