我正在尝试使用弹簧数据的新功能,投影来获取部分实体(NetworkSimple)的页面
我已经检查了文档,如果我只是请求:
Collection<NetworkSimple> findAllProjectedBy();
Run Code Online (Sandbox Code Playgroud)
它有效,但如果我使用可分页:
Page<NetworkSimple> findAllProjectedBy(Pageable pageable);
Run Code Online (Sandbox Code Playgroud)
它抛出一个错误:
org.hibernate.jpa.criteria.expression.function.AggregationFunction$COUNT cannot be cast to org.hibernate.jpa.criteria.expression.CompoundSelectionImpl
Run Code Online (Sandbox Code Playgroud)
任何人已经使用过这个吗?
我的NetworkSimple类如下:
public interface NetworkSimple {
Long getId();
String getNetworkName();
Boolean getIsActive();
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试将使用Android Studio在另一台计算机上创建的项目导入到使用相同软件的新计算机.
我选择"导入项目(Eclipse ADT,Gradle等)",然后选择具有以下结构的文件夹:
app
build.gradle
build
gradle
gradle.properties
gradlew
gradlew.bat
local.properties
settings.gradle
Run Code Online (Sandbox Code Playgroud)
问题是我不能像在其他机器上那样设置项目,我创建了它.在"Project> Android"中出现"Nothing to show".
我想使用投影来为相同的查询返回更少的元素。
Page<Network> findByIdIn(List<Long> ids);
Page<NetworkSimple> findByIdIn(List<Long> ids);
Run Code Online (Sandbox Code Playgroud)
由于查询是使用方法名称创建的,因此我必须使用哪些选项来执行相同的查询但使用不同的名称?
我正在使用 Ecto 从数据库请求数据,并且我使用以下代码预加载了由price_discount过滤的猫。
Item
|> join(:inner, [i], c in Cat, c.food_category_id == i.id)
|> where([i, c], is_nil(c.price_discount))
|> preload([i, c],
[
cats: c,
cats: :houses
])
Run Code Online (Sandbox Code Playgroud)
这很好用,但现在我想通过 id 订购 Houses,所以我正在跳这个工作:
Item
|> join(:inner, [i], c in Cat, c.food_category_id == i.id)
|> where([i, c], is_nil(c.price_discount))
|> preload([i, c],
[
cats: c,
cats: [
houses: from(h in Houses, order_by: h.id)
]
])
Run Code Online (Sandbox Code Playgroud)
但事实并非如此,这是错误:
from(h in Houses, order_by: h.id()) is not a valid preload expression. preload expects an atom, …Run Code Online (Sandbox Code Playgroud)