草庐IT

QueryDSL-JPA

全部标签

java - 如何使用 JPA 连接到多个数据库?

我有一个使用Javaservlets/JSP的应用程序。有多个客户端使用我的应用程序,但是每个客户端都有一个单独的数据库。所有数据库都具有相同的架构。我想确定在用户登录系统时使用哪个数据库连接。例如客户端A登录,我确定客户端A属于数据库C,获取数据库C的连接并继续我的快乐方式。我将JPA与Hibernate一起用作我的JPA提供程序。是否可以使用多个持久性单元并确定在登录时使用哪个单元来做到这一点?有没有更好/首选的方法来做到这一点?编辑添加:我正在使用注释和EJB,因此在EJB中使用@PersistenceContext(unitName="blahblah")设置持久性上下文,这可

java - JPA 嵌套事务和锁定

考虑两种方法存在于不同无状态bean中的场景publicclassBean_A{Bean_BbeanB;//InjectedorwhateverpublicvoidmethodA(){Entitye1=//getfromdbe1.setName("Blah");entityManager.persist(e1);intage=beanB.methodB();}}publicclassBean_B{//Notetransaction@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)publicvoidmethodB()

java - 我们可以在没有 hibernate 的情况下使用jpa吗

我是JPA的新手。据我了解,JPA是规范,Hibernate实现了JPA并提供附加功能以及JPA方法。但我正在阅读JPA教程,其中使用EntityManager对象我们可以对数据执行CRUD,而无需使用Hibernate库!谁能告诉我我可以使用EntityManager方法单独使用JPA,而不使用Hibernate?请提及一些有用的链接或示例。非常感谢您的回复。谢谢。 最佳答案 你说得对,JPA是一个规范。Hibernate和EclipseLink是它的几个实现。您必须指定持久性提供程序(Hibernate、EclipseLink)

java - 使用 JPA 条件 API 将条件表达式与 "AND"和 "OR"谓词组合

我需要调整以下代码示例。我有一个MySQL查询,它看起来像这样(2015-05-04和2015-05-06是动态的,象征一个时间范围)SELECT*FROMcarscWHEREc.idNOTIN(SELECTfkCarIdFROMbookingsWHERE(fromDate='2015-05-04')OR(fromDate='2015-05-06')OR(fromDate>='2015-05-04'ANDtoDate我有一个bookings表,还有一个carstable。我想知道在某个时间范围内哪辆车可用。SQL查询就像一个魅力。我想将这个“转换”成CriteriaBuilder输出。

java - 如何在 JPA - GAE/J 中使属性为空?

我有一个实体类User。我想添加更多属性,但要保持它们可以为空。JPA中用于此的注解是什么?我在GoogleAppEngine中使用JPA。 最佳答案 在JPA中,属性默认可以为空,原始类型除外。您可以使用nullablepropertyofthe@Columnannotation控制可空性,就像这样://notnullable@Column(nullable=false)privateStringprop1;//nullable@Column(nullable=true)privateStringprop2;//default=n

java - 从 JPA 实体逆向工程 DDL

我正在玩一些JPA的东西,更改映射以查看它们应该如何等等。这是基本的实验。但是我找不到一个工具可以简单地读取我的实体然后为我生成表模式。我试图在JBoss工具中找到类似的东西,但nada。Eclipse集成将是一个巨大的优势,但我会使用命令行工具或ant任务。有什么想法吗? 最佳答案 尝试将以下内容添加到您的persistence.xml对于hibernate:创建:删除和创建:Toplink:创建:删除和创建:对于EclipseLink:创建:删除和创建: 关于java-从JPA实体逆

java - Spring Data JPA删除 native 查询抛出异常

我有一个User实体和一个Role实体。关系定义如下:@OneToMany@JoinTable(name="USER_ROLES",inverseJoinColumns=@JoinColumn(name="ROLE_ID"))privateListroles=null;现在,当我删除一个角色时,我需要从所有拥有该角色的用户中删除该角色。通常,您会通过查找具有该角色的所有用户、从列表中删除该角色并保存该用户来执行此类操作。但是,当用户可能超过一百万时,我不想在应用程序中循环访问这么多实体。因此,我想使用native查询从USER_ROLES连接表中删除行。我尝试将其添加到我的存储库:@Q

java - 如何在 Oracle 中使用 JPA 存储日期和时间?

我正在使用WebSphere7(JavaEE5)和OpenJPA1.2.1。我有一个带有“modifiedTimestamp”属性的JPA对象,如下所示:@EntitypublicclassWidget{/*...*/privatejava.sql.DatemodifiedTimestamp;/*...*/}Oracle数据库中相关字段的类型为DATE。我是这样设置日期的......myWidget.setModifiedTimestamp(newjava.sql.Data(System.currentTimeMillis());...它被存储了,但是当我读回它时,一天中的时间还没有被

java - 如何使用 LEFT OUTER JOIN 创建 JPA 查询

我开始学习JPA,并基于我在SQLServer中测试的以下原生SQL实现了一个JPA查询示例:SELECTf.StudentID,f.Name,f.Age,f.Class1,f.Class2FROMStudentfLEFTOUTERJOINClassTblsONs.ClassID=f.Class1ORs.ClassID=f.Class2WHEREs.ClassName='abc'根据上面的SQL,我构造了以下JPQL查询:SELECTfFROMStudentfLEFTJOINf.Class1s;如您所见,我仍然缺少原始查询中的条件ORs.ClassID=f.Class2。我的问题是,我

java - Spring JPA - 通过 EmbeddedId 部分查找

以下代码仅用于演示目的。我的Entitybean看起来像这样@EntityclassEmployee{@EmbeddedIdprivateEmployeeKeyemployeeKey;privateStringfirstName;privateStringlastName;//Otherfields//GetterandSetters}可嵌入类:@EmbeddableclassEmployeeKeyimplementsSerializable{privateintemployeeId;privateStringbranchName;privateStringdepartmentName