我正在测试Spring Data 1.10.4.Release,遵循Spring Data Docs http://Docs.Spring.io/spring-data/jpa/Docs/current/reference/html/#Projections中的示例
@Entity
public class Person {
@Id @GeneratedValue
private Long id;
private String firstName, lastName;
@OneToOne
private Address address;
}
@Entity
public class Address {
@Id @GeneratedValue
private Long id;
private String street, state, country;
}
以下预测:
interface PersonLimited {
String getFirstName();
AddressLimited getAddress();
}
interface AddressLimited {
String getCountry();
}
当我运行findPersonByFirstNameProjectedForLimitedData时
interface PersonRepository extends CrudRepository<Person, Long> {
@Query("select p from Person p where p.firstName = ?1")
PersonLimited findPersonByFirstNameProjectedForLimitedData(String firstName);
}
{
firstName: 'Homer',
address: {
country: 'USA'
}
}
SELECT person0_.firstName AS col_0_0_,
address1_.id AS id1_13_,
address1_.street AS street2_13_,
address1_.state AS state3_13_,
address1_.country AS country4_13_
FROM person person0_
LEFT OUTER JOIN address address1_
ON person0_.addressId = address1_.id
WHERE person0_.firstName = ?
SELECT person0_.firstName AS col_0_0_,
address1_.country AS country4_13_
FROM person person0_
LEFT OUTER JOIN address address1_
ON person0_.addressId = address1_.id
WHERE person0_.firstName = ?
对于与上述相同的预测,
当我运行findAllPersonsProjectedForLimitedData时
interface PersonRepository extends CrudRepository<Person, Long> {
@Query("select p from Person p")
List<PersonLimited> findAllPersonsProjectedForLimitedData();
}
[
{
firstName: 'Homer',
address: {
country: 'USA'
}
},
{
firstName: 'Maggie',
address: {
country: 'USA'
}
}
]
SELECT person0_.id AS id1_18_,
person0_.firstName AS firstName2_18_,
person0_.lastName AS lastName3_18_,
person0_.addressid AS company4_18_
FROM person person0_
SELECT address0_.id AS id1_13_0_,
address0_.street AS street2_13_0_,
address0_.state AS state3_13_0_,
address0_.country AS country4_13_0_
FROM address address0_
WHERE address0_.id = ?
SELECT person0_.firstName AS firstName2_18_
FROM person person0_
SELECT address0_.country AS country4_13_0_
FROM address address0_
WHERE address0_.id = ?
如果您希望在Spring数据投影中使用注释@Query,那么您必须使用字段别名,并且您需要确保对与投影字段匹配的项目进行别名。下面的代码应该适用于问题1:
interface PersonRepository extends CrudRepository<Person, Long> {
@Query("select p.firstName as firstname, p.address as address from Person p where p.firstName = ?1")
PersonLimited findPersonByFirstNameProjectedForLimitedData(String firstName);
}
您可以使用的另一种选择是使用属性表达式定义查询。只要可能:
interface PersonRepository extends CrudRepository<Person, Long> {
List<PersonLimited> findByFirstName(String firstName);
}
我正在尝试从一个select表单中获取一个时间值。我在代码中看不到任何错误,尝试更改所有类名和变量,但值仍然没有被get select。(提交表单后我看不到所选的值) 代码添加如下:
我正在使用Hibernate标准和投影来获得不同的值,如下所示: 我正在使用带有投影的结果转换器来获取不同值的列表
这只有两种方式: 具有qdoc.id:存在,为空 不带qdoc.id:为空,存在 我已经检查过的内容:当我在Postgres客户机中运行Hibernate查询时,它总是带来字段。Bot在这两种情况下都存在。
问题内容: 对此不熟悉,尝试按照著名的Flask教程使用Flask-bootstrap,Flask-wtforms,Jinja等构建一个应用程序 我有一个带有2个选择字段和一个按钮的表单。 我只希望第一个字段预先填充,而另一个字段根据前一个字段的选定值填充(在客户端?)。 在模板中,我尝试类似 可以正常工作(只要我返回元组列表以使用正确的javascript和路由填充下一个字段),但我想要以下内容
问题内容: 使用Python,如何将字段提取为变量?基本上,我将其转换为: 像 问题答案: 假设您将该字典存储在一个名为值的变量中。要进入变量,请执行以下操作: 如果该json位于文件中,请执行以下操作以加载它: 如果该json来自URL,请执行以下操作以加载它: 要打印所有条件,您可以:
我试图使用一个投影来从一个实体中提取数据,它有一些关系。然而。投影上的构造函数接受三个参数;一个集合,整数和另一个整数。如果没有这个集合作为参数,这一切都很好,但是一旦我添加了这个集合,我就开始得到SQL语法查询错误。 这里有一个我正在使用的例子... 下面是我正在使用的查询(不完全相同,因为这是我正在处理的问题的简化版本).... 所以,我想我的主要问题是,我如何将一个集合作为一个对象包含在投影