在JPA中,查询是:
Query q = entityManager.createQuery("select o from Product o WHERE o.category = :value");
q.setParameter("category", category);
如何在JPA中将category设置为任何类别?因此,如果通过了null类别,我只需忽略类别参数,选择所有产品。
我使用hibernate和泛型来实现一些特性。这里我有两个实体国家和CountryTrans。CountryTrans代表国家的不同翻译(不同名称)。我在这个项目中使用Spring。
我有一个包含Id的顶级类。
@MappedSuperclass
public abstract class AbstractEntity {
private Long id;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Long getId() {
return id;
}
我是JPA的新手,这是我的一个查询,我有几个参数作为查询的一部分,任何参数都可以是空值
@Query(value = "SELECT ord.purchaseOrderNumber,ord.salesOrderNumber,ord.quoteNumber"
+ " FROM Order ord WHERE ord.purchaseOrderNumber LIKE :poNumber% "
+ " AND ord.salesOrderNumber LIKE :soNumber "
我目前是spring boot的新手,我在解决这个错误时遇到了麻烦,如果有人能帮助我,我会很高兴的。
这是一个错误,我得到了这个完整的异常
我的方言是InnoDb
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfi
我有一个疑问,如下:
@Query("select distinct i from Invoice as i where i.entityId = :entityId and CAST(i.invoiceDate AS DATE) between :start and :end")
List<Invoice> findByEntityIdAndInvoiceDateBetween(@Param("entityId") String entityId, @Param("start") Date start, @Param(
下面是我从数据库中选择的内容:
SELECT * FROM testlogging.employees
where
EMPLOYEE_NO in (
select EMPLOYEES_EMPLOYEE_NO from testlogging.test_logging
where ID in (
select TEST_LOGGING_ID from testlogging.test_logging_detail
where APPROVAL_LEVELS_ID = '4'
)
)
我该如何在JPA中做到这一点?
SELEC
我开发了带有Spring引导的简单商店应用程序。我的应用程序使用部署在码头容器中的MySQL数据库,运行良好。现在我想测试我的应用程序,我得出的结论是,H2 in-memory db将足够测试。由于我刚开始测试spring应用程序,我遇到了与在H2测试数据库中创建表相关的错误。这些都是我遇到的错误
第一误差
alter table store_order_items
drop
foreign key FKikqpbj6xmmyoblsolyhk250tq" via JDBC Statement
at org.hibernate.tool.
我刚读过hibernate引用,他们说您应该使用constans进行HQL查询。但是,这并不总是可能的,例如,如果您执行搜索函数,并且有10个标准(不是jpa标准,只是您正在搜索的列)。我敢打赌,您可以做一些被转换成性能不好的SQL的讨厌的HQL,但我觉得这不是最好的选择。
我知道你可以使用标准API,但它没有HQL那么强大,有些人只是不喜欢它(我就是其中之一)。
你是如何在你的申请中做到的?
我指的是类似的代码(这只是一个例子!)
String hql = "from Biuro where ";
List parameters = ...
if (dateFrom!=nul
我确实需要根据某种条件从三个不同的表中获取数据。例如:
@Entity
class Order{
id;
type;
typeId;
@Join with boqTable to get the Boq Associated with if type == BOQ and id = typeId
@Join with customTable to get custom data associated if type == CUSTOM and id = typeId
}
我应该能够使用Order实体插入和更新子表。如何使用JPA/Hibernate..。我搜索了
我无法为下面描述的字段设置空值。我想插入NULL作为默认值。
@Column(name = "answer_date",columnDefinition = "TIMESTAMP")
private LocalDateTime answerDate
当我设置NULL时,它显示以下错误:
Caused by: org.postgresql.util.PSQLException: ERROR: column "answer_date" is of type timestamp without time zone but expression is o
如果将AspectJ编译器与方面库(如Spring)一起使用,并且没有任何与特定方面相匹配的类,则可以获得:
[WARNING] advice defined in org.springframework.orm.jpa.aspectj.JpaExceptionTranslatorAspect has not been applied [Xlint:adviceDidNotMatch]
但是对于这个特定的项目,我不需要这个方面,也不需要其他一些方面。
您似乎可以使用-Xlint配置警告,但似乎只能关闭不匹配的通知的所有警告(adviceDidNotMatch=ignore)。我真正想做的是排
我有两个具有双向@OneToMany/@ManyToOne关系的实体类。当我序列化Class A时,我不希望在A类中包含整个Class B,只希望包含id字段。但是,类B仍然需要作为一个对象出现在类A中,而不仅仅是一个属性。我怎样才能做到这一点呢?我使用的是JPA:2.2/Jackson:2.9.0 @Entity
public class A {
private long id;
@ManyToOne
private B b;
// ...
}
@Entity
public class B {
private long id;
pr
下载并尝试了新的2.0.0.M2版本,并运行了pizzashop示例,但得到此错误
field string --fieldName shopCountry --class ~.domain.PizzaOrderPk
Option 'class' is not available for this command when the focus is set to one class.
示例目录中的代码,但注释了第一行:
// tailor activate --name web-simple
// Create a new project
project setup --to
因此,我试图一次将JPA (JPQL)的本机命名查询(JPQL)写到INSERT多行数据,并获取插入记录的所有id(与主键的唯一约束不冲突)。我正在使用Postgres数据库。
数据库如下所示:SELECT * FROM table;
id | sent
---+------
1 | f
(1 row)
我想要实现的是这个PSQL语句:
INSERT INTO table VALUES (1, false),(2, false) ON CONFLICT DO NOTHING RETURNING id;
它应该返回:
id
---
2
(1 row)
因此,我最初的想法是在JPA中创建一个原生
所以我有表comment和author。我想建立复杂的搜索栏与许多可选的参数。我想过滤评论与可选的作者名字/姓氏和一些标志,如受欢迎(基于评论评级)。
由于我不知道如何使用spring data jpa存储库编写它,我一直在考虑用@Query注解将它写成原生查询,像这样的smth应该可以工作。
Select c.* from comment c join author a on a.id = c.author_id
Where (:firstname = '' or (:firstname = a.firstname))
And (:lastname = ''