Questions tagged «jpa»

Java Persistence API(JPA)是Java规范,用于访问,持久化和管理Java对象/类与关系数据库之间的数据。它是EJB 3.0规范的一部分,并且是对象到关系映射(ORM)的行业标准方法。

5
何时在JPA中使用EntityManager.find()与EntityManager.getReference()
我遇到了一种情况(我认为这很奇怪,但可能很正常),在这种情况下,我使用EntityManager.getReference(LObj.getClass(),LObj.getId())获取数据库实体,然后将返回的对象传递给保留在另一个表中。 所以基本上流程是这样的: TFacade类{ createT(FObj,AObj){ T TObj =新的T(); TObj.setF(FObj); TObj.setA(AObj); ... EntityManager.persist(TObj); ... L LObj = A.getL(); FObj.setL(LObj); FFacade.editF(FObj); } } @ TransactionAttributeType.REQUIRES_NEW FFacade类{ editF(FObj){ L LObj = FObj.getL(); LObj = EntityManager.getReference(LObj.getClass(),LObj.getId()); ... EntityManager.merge(FObj); ... FLHFacade.create(FObj,LObj); } } @ TransactionAttributeType.REQUIRED FLHFacade类{ createFLH(FObj,LObj){ FLH FLHObj =新的FLH(); FLHObj.setF(FObj); FLHObj.setL(LObj); .... EntityManager.persist(FLHObj); ... } …

2
使用JPA存储Map <String,String>
我想知道是否可以使用注释attributes使用JPA2 将地图持久化到以下类中 public class Example { long id; // .... Map&lt;String, String&gt; attributes = new HashMap&lt;String, String&gt;(); // .... } 由于我们已经有一个现有的生产数据库,因此理想情况下,值attributes 可以映射到以下现有表: create table example_attributes { example_id bigint, name varchar(100), value varchar(100));
103 java  jpa  orm  jpa-2.0 




4
使用JPA和Hibernate时如何选择ID生成策略
我正在阅读《 Hibernate参考指南》的ID生成部分和“ Hibernate的Java持久性” Hibernate和JPA结合在一起有很多选项。 我正在寻找有关如何选择特定ID生成策略的进一步文档。 我也在寻找引爆点。 例如,hilo策略有望减少竞争。我假设必须对此进行权衡取舍。 我想受权衡教育。 有没有可用的文献?

4
Spring Data JPA通过嵌入式对象属性查找
我想编写一个Spring Data JPA存储库接口方法签名,该签名可以让我在该实体中找到具有嵌入式对象属性的实体。有人知道这是否可行吗? 这是我的代码: @Entity @Table(name = "BOOK_UPDATE_QUEUE", indexes = { uniqueConstraints = @UniqueConstraint(columnNames = { "bookId", "region" }, name = "UK01_BOOK_UPDATE_QUEUE")) public class QueuedBook implements Serializable { @Embedded @NotNull private BookId bookId; ... } @Embeddable public class BookId implements Serializable { @NotNull @Size(min=1, max=40) private String bookId; @NotNull @Enumerated(EnumType.STRING) …

7
休眠:根据实体类自动创建/更新数据库表
我有以下实体类(在Groovy中): import javax.persistence.Entity import javax.persistence.Id import javax.persistence.GeneratedValue import javax.persistence.GenerationType @Entity public class ServerNode { @Id @GeneratedValue(strategy = GenerationType.AUTO) Long id String firstName String lastName } 和我的persistence.xml: &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0"&gt; &lt;persistence-unit name="NewPersistenceUnit"&gt; &lt;provider&gt;org.hibernate.ejb.HibernatePersistence&lt;/provider&gt; &lt;properties&gt; &lt;property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/Icarus"/&gt; &lt;property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/&gt; &lt;property name="hibernate.connection.username" value="root"/&gt; &lt;property name="hibernate.connection.password" value=""/&gt; &lt;property name="hibernate.archive.autodetection" …
101 java  mysql  hibernate  jpa  groovy 


11
使用JPA指定索引(非唯一键)
如何定义一个字段,例如email使用JPA批注进行索引。我们需要一个非唯一的键,email因为每天在该字段上有数百万个查询,而没有键的话,它有点慢。 @Entity @Table(name="person", uniqueConstraints=@UniqueConstraint(columnNames={"code", "uid"})) public class Person { // Unique on code and uid public String code; public String uid; public String username; public String name; public String email; } 我已经看到了特定于休眠的注释,但是由于我们仍在决定休眠和数据核之间的关系,因此我试图避免使用特定于供应商的解决方案。 更新: 从JPA 2.1开始,您可以执行此操作。请参阅:此位置不允许使用注释@Index

6
JPA:单向多对一和级联删除
假设我有如下所示的单向 @ManyToOne关系: @Entity public class Parent implements Serializable { @Id @GeneratedValue private long id; } @Entity public class Child implements Serializable { @Id @GeneratedValue private long id; @ManyToOne @JoinColumn private Parent parent; } 如果我有一个父P和一个返回给P的子C 1 ... C n,那么在JPA中是否有一种干净漂亮的方法来在删除P(即)时自动删除子C 1 ... C nentityManager.remove(P)? 我正在寻找的功能类似于ON DELETE CASCADESQL。

6
无法将标识列密钥生成与<union-subclass>(TABLE_PER_CLASS)一起使用
com.something.SuperClass: @Entity @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) public abstract class SuperClass implements Serializable { private static final long serialVersionUID = -695503064509648117L; long confirmationCode; @Id @GeneratedValue(strategy = GenerationType.AUTO) // Causes exception!!! public long getConfirmationCode() { return confirmationCode; } public void setConfirmationCode(long confirmationCode) { this.confirmationCode = confirmationCode; } } com.something.SubClass: @Entity public abstract class …

2
@OneToMany List <> vs Set <>的区别
如果我使用有什么区别 @OneToMany public Set&lt;Rating&gt; ratings; 或者如果我使用 @OneToMany public List&lt;Rating&gt; ratings; 两者都工作正常,我知道列表和集合之间的区别,但是我不知道这对休眠(或JPA 2.0)如何处理它有什么区别。
94 java  jpa 

7
如何生成JPA实体元模型?
本着与CriteriaQuery关联的类型安全的精神,JPA 2.0还具有一个API,用于支持实体的元模型表示。 是否有人知道此API的完整功能实现(生成元模型,而不是手动创建元模型类)?如果有人也知道在Eclipse中进行设置的步骤,那将是非常棒的(我认为它与设置注释处理器一样简单,但您永远不会知道)。 编辑:偶然发现了Hibernate JPA 2元模型生成器。但是问题仍然存在,因为我找不到该jar的任何下载链接。 编辑2:自从我问这个问题以来已经过去了一段时间,但是我想我会回来并在SourceForge上添加指向Hibernate JPA Model Generator项目的链接

18
如何从Java和JPA调用存储过程
我正在编写一个简单的Web应用程序以调用存储过程并检索一些数据。它是一个非常简单的应用程序,可以与客户的数据库进行交互。我们传递员工ID和公司ID,存储过程将返回员工详细信息。 Web应用程序无法更新/删除数据,并且正在使用SQL Server。 我正在Jboss AS中部署Web应用程序。我应该使用JPA访问存储过程还是CallableStatement。在这种情况下使用JPA的任何优势。 调用该存储过程的sql语句也将是什么。我以前从未使用过存储过程,因此我为此感到吃力。Google并没有太大帮助。 这是存储过程: CREATE procedure getEmployeeDetails (@employeeId int, @companyId int) as begin select firstName, lastName, gender, address from employee et where et.employeeId = @employeeId and et.companyId = @companyId end 更新: 对于任何其他使用JPA调用存储过程有问题的人。 Query query = em.createNativeQuery("{call getEmployeeDetails(?,?)}", EmployeeDetails.class) .setParameter(1, employeeId) .setParameter(2, companyId); List&lt;EmployeeDetails&gt; result = query.getResultList(); 我注意到的事情: …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.