实现简单更新的标准方法是什么?示例:我们有电话号码为NNNNNN的用户,现在我们要将其设置为YYYYYY。@PersistenceContextprivateEntityManagerem;publicvoidupdate(UsertransientUser){whatshouldbehere?}用户实体尽可能简单:@Entity@Table(name="USER")publicclassUser{@Id@GeneratedValueprivateIntegerid;@Column(nullable=false,unique=true)privateStringlogin;privat
这个问题在这里已经有了答案:DoesJPAsupportmappingtosqlviews?(4个回答)关闭6年前。我们目前有一个JavaEE系统,我们在其中使用JPA映射到我们的数据库。这是一个相当完善的系统,大约有20个实体。我们现在被命令为所有事情使用View。例如:如果我们有一个名为PERMISSION的表,那么我们还需要一个名为PERMISSION_VIEW的View。基本上我们需要对每个表都这样做,而我们的应用程序只能通过查询View来访问数据。现在我们所有的实体bean看起来像这样:@Entity@Table(name="PERMISSION")@NamedQueries
JPA/EJB3框架是否提供标准方式来执行批量插入操作...?我们使用hibernate作为持久化框架,所以我可以回退到HibernateSession并使用组合session.save()/session.flush()实现批量插入。但是想知道EJB3是否支持这个... 最佳答案 JPA和Hibernate都没有为批量插入提供特别支持,使用JPA进行批量插入的习惯用法与使用Hibernate时相同:EntityManagerem=...;EntityTransactiontx=em.getTransaction();tx.begi
我有两个数据库实体:Forum和Topic。Topic有protectedlongforumId数据成员,这当然表示Topic的论坛。我的问题是该数据成员使用什么注释? 最佳答案 由于论坛有很多主题,而一个主题属于一个且唯一的论坛,您可能希望使用带有@ManyToOne注释的论坛类型属性。:@ManyToOne@JoinColumn(name="forumId")privateForumforum;查看更多:ManyToOne和JPAmapping 关于java-JPA:外键注释,我们在
我知道有说明:Persistence.createEntityManagerFactory("persistence-unit-name");JPA持久化机制读取“persistence.xml”文件,查找名为“persistence-unit-name”的持久化单元,并基于它构造EntityManagerFactory。我的问题是,如何强制JPA获取与“persistence.xml”不同的文件?例如,“persistence-test.xml”。 最佳答案 没有标准化的JPA方法来执行此操作,尽管个别JPA提供者可能会提供一种方
我有两个实体,我想通过多个列加入它们。这些列由两个实体共享的@Embeddable对象共享。在下面的示例中,Foo只能有一个Bar,但Bar可以有多个Foo(其中>AnEmbeddableObject是Bar的唯一键)。这是一个例子:@Entity@Table(name="foo")publicclassFoo{@Id@Column(name="id")@GeneratedValue(generator="seqGen")@SequenceGenerator(name="seqGen",sequenceName="FOO_ID_SEQ",allocationSize=1)private
我正在使用带有JPA的SEAM(作为SeamManagedPersistanceContext实现),在我的支持bean中,我将一组实体(ArrayList)加载到支持bean中。如果不同的用户在不同的session中修改其中一个实体,我希望将这些更改传播到我的session中的集合,我有一个方法refreshList()并尝试了以下方法。..@OverridepublicListrefreshList(){itemList=itemStatusDAO.getCurrentStatus();}使用以下查询@SuppressWarnings("unchecked")@Overridepu
我想为JPA编写一个转换器,它将任何枚举存储为大写。我们遇到的一些枚举尚未遵循仅使用大写字母的约定,因此在重构它们之前我仍然存储future值。到目前为止我得到了什么:packagestudent;publicenumStudentState{Started,Mentoring,Repeating,STUPID,GENIUS;}我希望将“Started”存储为“STARTED”等等。packagestudent;importjpa.EnumUppercaseConverter;importjavax.persistence.*;importjava.io.Serializable;im
使用Hibernate,您可以将Entity类加载为:sessionFactory=newAnnotationConfiguration().addPackage("test.animals").addAnnotatedClass(Flight.class).addAnnotatedClass(Sky.class).addAnnotatedClass(Person.class).addAnnotatedClass(Dog.class);有没有办法以符合JPA2.0的方式做同样的事情-以编程方式加载您的实体类?这个问题的原因是因为我想动态加载我的Entity类,因此不一定以编程方式。
使用JPA2.0。似乎默认情况下(没有显式获取),@OneToOne(fetch=FetchType.EAGER)字段在1+N查询中获取,其中N是包含定义关系的实体的结果数到一个不同的相关实体。使用CriteriaAPI,我可能会尝试避免这种情况,如下所示:CriteriaBuilderbuilder=entityManager.getCriteriaBuilder();CriteriaQueryquery=builder.createQuery(MyEntity.class);Rootroot=query.from(MyEntity.class);Joinjoin=root.join