草庐IT

QueryDSL-JPA

全部标签

java - 在 @Table(name = "tableName") - 使 "tableName"成为 JPA 中的变量

我正在使用JPA,我需要将“tableName”设为一个变量。在数据库中,我有很多表,我的代码需要访问我指定要读取的表。@Entity@Table(name="tableName")publicclassDatabaseimplementsSerializable{...............}有什么想法吗? 最佳答案 我想,如果您担心的话,您可以这样做。从未尝试过,这只是一个疯狂的猜测。但这是通常的做法——我遵循命名查询;是的,那完全是另一回事。@Entity@Table(name=Database.tableName)publ

java - Hibernate 和 JPA 中的 @Entity 有什么区别

当我在编写示例Hibernate独立程序时,使用@Entity注释在我的脑海中产生了一些困惑。我的问题是,我有一个来自javax.persistence包的带有@Entity的持久类然后它工作正常但是当我用HibernateAPI替换@Entity注释时(即来自org.hibernate.annotations包)然后它给出org.hibernate.MappingException:未知实体:com.jetti.test.Employee非常感谢提供更多解释。 最佳答案 @javax.persistence.Entityissti

java - JPA 多对多,带有额外的列

我有以下问题需要解决。核心问题是我想在JoinTable中为JPA中的ManyToMany关系添加额外的列。就我而言,我有以下实体。Topic是一个简单的实体,它有许多RemoteDocument(一个RemoteDocument可能被许多Topic引用,因此它应该是ManyToMany关系)。RemoteDocument实体也是只读的,因为它只能从Oracle实体化View中读取,而且禁止对此实体化View进行任何更改。所以我想存储与某些主题相关的RemoteDocuments的顺序。事实上,我可以用额外的实体做类似的事情:@EntitypublicclassTopic{@Idpri

java - 在 JPA 中选择具有 1 个条件的每个用户最近日期的行

我有这个实体,我想为每个设备列出属性消息=1的最后一个事件@Entity@Table(name="t_device_event")@NamedQueries(value={@NamedQuery(name="DeviceEvent.findWithMessageActive",query="fromDeviceEventasde1wherede1.message=1andde1.received="+"(selectmax(de2.received)fromDeviceEventde2"+"wherede2.device.id=de1.device.id)"),)publicclass

java - JPA 枚举比较不等于失败

我正在使用JPA2.1.2。我想执行带有where子句的选择查询。where语句应该比较(不等于)存储在数据库(字符串)中的枚举。@Entity@Table(name="MY_ENTITY")publicclassMyEntityimplementsSerializable{@Column(name="REMINDER_STATE")@Enumerated(EnumType.STRING)privateReminderStagereminderStage;...}classDaoImpl{....@OverridepublicListfindAll(ReminderStagestage

java - 处理 QueryDSL 中的可选参数

我正在使用QueryDSL和SpringData。我有表说Employee并且我创建了实体类说EmployeeEntity我写了以下服务方法publicEmployeeEntitygetEmployees(StringfirstName,StringlastName){QEmployeeEntityemployee=QEmployeeEntity.employeeEntity;BooleanExpressionquery=null;if(firstName!=null){query=employee.firstName.eq(firstName);}if(lastName!=null)

java - 具有 JPA 部署的 Google App Engine 应用程序挂起

我有一个javaGAEWeb应用程序,其中datanucleus作为JPA提供程序。在我的机器上本地部署时-部署挂起(需要几分钟)。查看任务管理器,我有一个正在运行的javac进程。知道出了什么问题吗? 最佳答案 同意。这是GAE的问题,因为它需要一个6permutationCompilation,之后应用程序将被部署并显示在浏览器上。我觉得这只是GAE而不是JPA的问题。我开发了一个类似的应用程序,如果你觉得它是因为JPA,你可以检查相应的数据库管理员,看看有多少线程正在为用户打开。如果您似乎发现有些垃圾没有被收集,请检查您的代码

java - JPA一对多过滤

我们嵌套了几个实体。然而,在检索时,我们只想获取那些处于Activity状态的实体。@EntitypublicclassSystem{@Id@Column(name="ID")privateIntegerid;@OneToMany(mappedBy="system")privateSetsystempropertys;}@EntitypublicclassSystemproperty{@Id@Column(name="ID")privateIntegerid;@Id@Column(name="ACTIVE")privateIntegeractive;}当请求Systemproperti

java - 如何使用 hibernate JPA 注释映射嵌套集合 Map<Key,List<Values>>?

我有一门课,我不确定如何正确注释。我对Holder::data的目标:List应该不是通过比较器而是通过数组中元素的自然顺序来维护顺序。(如果有帮助,可以是ndx列。)Holder将拥有对数据的唯一引用,因此Cascadeall可能也适用。我也对移除map的不同设计持开放态度,如果这样可以使设计更简洁的话。@EntitypublicclassHolderextendsDomainObject{privateMap>data;}@EntitypublicclassElementextendsDomainObject{privatelongvalueId;privateintotherDa

java - JPA 中的深拷贝

我想在JPA中制作一个实体的深拷贝。我在这里发现了一个有趣的讨论:http://forums.java.net/jive/thread.jspa?messageID=253092&tstart=0听起来提议的解决方案是将所有@Id设置为零。这是我的基本代码://StartaJPAsession.EntityManagerem=emf.createEntityManager();em.getTransaction().begin();//GettheobjectIwanttocopy.MyClassmyObject=em.find(MyClass.class,id);//Userefle