草庐IT

java - 如何从 Spring-Data-JPA 返回单个结果?

我正在尝试从SpringData查询中获取单个结果。我希望从用户表中返回最大的ID。我希望这会很简单,但我有点迷路。到目前为止,基于thisrelatedSOpost,我得出的结论是我需要使用Specification来定义我的查询和Paged结果,指定我想要检索的结果数。不幸的是,我遇到了HibernateJdbcException数据访问异常。我的Specification/Predicate应该相当简单并反射(reflect):fromUserorderbyid:Pageresult=userRepository.findAll(newSpecification(){@Overr

java - 我应该在 JPA2.0 中使用 Primitives 还是包装器?

我看过这个question在SO中,它倾向于导致Primitives并且也从coderanch中看到了这个这往往会导致wrapper。两者也都有些老了。我没有任何特殊需求,只是想知道一个标准的良好做法。网络上的例子也很复杂。例如,有些像这样:@Id@Column(name="CUSTOMER_ID")publiclongcustomerId;其他有包装器的:@Id@Column(name="CUSTOMER_ID")publicLongcustomerId; 最佳答案 两者的区别在于可空性。原始类型不能为空,而“包装”类型可以为空。

java - JPA 异常 : Object: . .. 不是已知的实体类型

我是JPA的新手,我在自动生成主键值方面遇到了问题。我有以下实体:packagejpatest.entities;importjava.io.Serializable;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.GenerationType;importjavax.persistence.Id;@EntitypublicclassMyEntityimplementsSerializable{privatestaticfinallongseria

java - 使用 JPA 注释自动从父项中删除子项,从子项中自动删除父项

假设我们有3个实体对象类:classParent{Stringname;Listchildren;}classChild{Stringname;Parentparent;}classToy{Stringname;Childchild;}我如何使用JPA2.x(或hibernate)注释来:父级删除时自动删除所有子级(一对多)删除时自动从子列表中删除子(多对一)当child移除时自动删除玩具(一对一)我正在使用Hibernate4.3.5和mysql5.1.30。谢谢 最佳答案 remove实体状态转换应该从父级级联到子级,而不是相反

java - 如何在不访问目标表的情况下从 JPA ManyToOne 映射中检索外键?

我有以下两个用于构建图形的注释类:@Entity@Table(name="Edge")publicclassEdge{/*somecodeomittedforbrevity*/@ManyToOne@JoinColumn(name="ixNodeFrom",nullable=false)privateNode_nodFrom;@ManyToOne@JoinColumn(name="ixNodeTo",nullable=false)privateNode_nodTo;/*somecodeomittedforbrevity*/}@Entity@Table(name="Node")public

java - 在 jpa/EclipseLink 创建表后执行 sql 脚本?

在EclipseLink生成ddl后,是否有可能执行sql脚本?换句话说,是否有可能使用带有“drop-and-create-tables”的EclipseLink属性“eclipselink.ddl-generation”并且EclipseLink在创建后执行另一个sql文件(将一些数据插入到刚刚创建的一些表中)表定义?我将EclipseLink2.x和JPA2.0与GlassFishv3结合使用。或者我可以在项目(与ejb3的war)部署中调用的java方法中初始化表吗? 最佳答案 出于同样的原因,我遇到了这个问题,试图找到一种

java - 如何获取任何 JPA 实体的主键?

对于每个@Entity,我需要执行以下操作:publicbooleaninsert(finalEntityentity){if(em.find(entity.getClass(),entity.getId())==null){et.begin();em.persist(entity);et.commit();returntrue;}returnfalse;}那就是如果实体不存在就持久化,并知道它是否存在。对于实体,我试图达到@Entity,尽管我意识到这不是继承关系。我可以使用哪个类来引用每个JPA实体?我可以只创建一个接口(interface)/抽象类MyEntities并让它们全部

java - JPA CriteriaBuilder 子查询多选

我对jpa中的子查询类有疑问。我需要用两个自定义字段创建子查询,但子查询没有多选方法,选择方法有表达式输入参数(在查询中这是选择)和常量方法不合适。另外我对连接子查询的结果有疑问,这可能吗?以及如何?我有:实体链publicclassChain{@Id@Column(name="chain_id")@GeneratedValue(generator="seq_cha_id",strategy=GenerationType.SEQUENCE)@SequenceGenerator(name="seq_cha_id",sequenceName="SEQ_CHA_ID",allocationS

java - JPA 实体映射基于另外两个实体映射相关

不确定这是否可能,但尝试映射WorkflowInstancePlayer播放器,它基于两个其他实体映射相关,WorkActionClass和WorkflowInstance下面的实体。publicclassActionimplementsSerializable{@IdprivateLongaction_id;@ManyToOne@JoinColumn(name="work_action_class_id",referencedColumnName="work_action_class_id")privateWorkActionClassworkActionClass;@ManyToO

java - 保持 JPA EntityManager 打开?

我正在学习JPA,示例中的一般模式如下所示:EntityManagerem=factory.createEntityManager();em.getTransaction().begin();//....em.getTransaction().commit();em.close();现在我想知道为什么我们不断地创建和关闭EntityManagers,而不是保持它打开并开始新的交易?保持打开状态与始终关闭状态相比有哪些好处和成本? 最佳答案 我想到了两个特定于JPA的原因:JPA规范不保证EntityManager是线程安全的。因此,