我在J2SE项目中使用JPA+Hibernate和PostGreSQL数据库。我有2个实体A和B。A与B具有@OneToMany关系。在我的域模型中,A可能引用数百万个B。当我将新对象添加到集合中时,需要几分钟才能完成。@OneToMany(cascade=CascadeType.PERSIST)Collectionfoo=newArrayList();//mightcontainmillionsofrecords//...//thistakesalotoftimefoo.add(newB());我认为JPA在插入新对象之前获取整个集合。是否可以配置关系,以便通过向集合添加新对象时不执
我将JPA与GoogleAppEngine结合使用。假设我有一个非常简单的@Entity,由一个键和一个字符串组成,仅此而已。我现在创建了10000个这样的实体,将它们放在一个列表中,现在想存储所有这些实体。如果我尝试使用EntityManagerem和for循环遍历所有实体的List...for(MyEntityentity:listOfAllEntities){em.persist(entity);}..我会得到一个IllegalArgumentException:java.lang.IllegalArgumentException:can'toperateonmultipleen
我们有一个JavaJ2EE应用程序,它为每个数据库行插入/更新使用单独的Web服务调用。事实证明这太慢了。他们让我来“快速”修复它。我计划将所有Web服务调用转换为纯JDBC。为此,我需要从池中获取JDBC连接,然后以多种不同的方法使用它。我需要在多个DAO中使用相同的JDBC连接,将它们串在一起形成一个数据库事务。我可以明确地将JDBC连接传递给需要它的每个DAO,但这需要我更改很多方法签名,再加上很多单元测试(这与“快速”部分背道而驰)。我正在尝试想出一个好方法,将JDBC连接放在某个地方,然后只需在需要它的方法中获取它,而不必在任何地方显式地传递它。我们不能在这个项目上使用Spr
OneToMany+MapKeyJoinColumn对我不起作用,请提出我做错了什么。我正在使用JPA2.0+Hibernate3.6.1并想映射下表:上课:@EntitypublicclassQuestion{//idandotherfields@OneToMany(mappedBy="question",cascade=CascadeType.ALL)@MapKeyJoinColumn(name="language_id")privateMapstatements=newHashMap();}@EntitypublicclassStatement{@IdprivateLongid;
我想知道如何为Hibernate实体编写正确的equals()和hashCode(),这些实体与作为业务key很重要的另一个实体具有延迟加载的ManyToOne关系。请注意,我已经阅读了theHibernatedocumentationonthistopic我知道我必须/不应该使用对象ID。为了澄清,这里有一个例子:publicclassBusinessEntityimplementsSerializable{//forsimplicity,herejusttheimportantpartprivateStrings;@ManyToOne(fetch=FetchType.LAZY)pr
我需要创建表PORTATION_MODEL_SET。我需要从表portation创建两个键,从表phone_model创建一个键我有代码:@Entity@Table(name="PORTATION")@SecondaryTable(name="PORTATION")@Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)publicclassJDBCPortationimplementsPortation{@Id@GeneratedValue(strategy=GenerationType.AUTO)privateInteg
JavaEE6的新手,我正在尝试设置JDBCRealm。许多示例建议在SQL中手动制作保存用户/组信息的表。有没有更标准的“JPA”方法呢?Glassfish期望的表格不适合您最终使用的表格结构,例如,OneToMany映射(这是我希望我可以使用的)。我读到Glassfish仍然使用JDBC来完成JDBCRealm,这可以解释原因。我偶然发现了这个博客,它提出了一种使用JPA的方法。http://www.codeproject.com/Articles/238779/J2EE-JDBC-based-authentication-with-JPA-Entities-i但是是否有一种“官方
在一些JPA注释中,我想在代码中直接使用字段名称来代替容易出错的字符串:@javax.persistence.OrderBy(value=User_.registrationDate.getName())publicListgetPlugConfigs(){...}但上面的代码不会编译,因为要获取名称,我必须使用不是常量表达式的函数(User_是JPA@StaticMetamodel生成的)。是否可以以任何方式为此使用元模型,或者我是否坚持使用直接字符串常量?有没有办法为元模型自动生成这样的字符串常量?(我正在使用maven-processor-plugin生成)
我在Java中工作,遇到了一个非常奇怪的错误。我有一个非常基本的类如下:publicclassClassA{privatestaticLoggerlog=Logger.getLogger(ClassA.class.getName());privatebooleantrace;publicClassA(){trace=log.isTraceEnabled();}publicvoiddoSomething(){//doesstuff}}我可以在我当前的项目中很好地使用这个类。但是,当我构建、打包并安装到我的本地存储库(使用Maven,没有设置远程Artifact存储库)时,其他项目无法正确
我正在尝试查找有关如何使用SpringData(我正在使用JPA)仅选择实体的某些字段的信息。我只想选择一个实体的特定信息,存储库接口(interface)为您提供了返回整个实体信息的方法!。有时我只需要实体的2或3个字段并返回20,30,...100..字段可能有点矫枉过正。我会使用HibernateCriteriaProjections甚至JPA“SELECTNEW....”查询来实现这种功能。不知道SpringData是否可行。谢谢。 最佳答案 你可以做的是返回一个List从存储库。然后在您的服务类中迭代此列表并手动创建您需要