我正在关注Java的Play Framework 2.0教程,并在尝试保存ebean Model(task.save())时遇到此错误.
[PersistenceException:类型[class models.Task]不是注册实体?如果没有明确列出要使用的实体类,Ebean将在类路径中搜索它们.如果实体位于Jar中,请检查ebean.properties文件中的ebean.search.jars属性,或者检查ServerConfig.addJar().
我正在使用Play 2.0.2和ebean.
在Info课堂上,我定义了
@ManyToMany(fetch=FetchType.EAGER)
private Set<MemberInfo> members;
private Date createdDate = new Date();
Run Code Online (Sandbox Code Playgroud)
并MemberInfo有memberId领域.
当我做
public static Finder<Long,Info> find
= new Finder<Long,Info>(Long.class, Info.class);
find.fetch("members")
.where().filterMany("members").eq("memberId", memberId)
.order().desc("createdDate")
.findList();
Run Code Online (Sandbox Code Playgroud)
它返回所有的Info,不检查memberId的members.
我做错了什么?谢谢.
我正在使用Ebean,我需要最终得到"删除级联"作为DDL(数据定义语言) - 哪个注释做到了?我试过了
@OneToMany(cascade=CascadeType.REMOVE)
Run Code Online (Sandbox Code Playgroud)
但是这给出了"on delete restrict"/不会更改默认的"删除限制"?
在 ebean 和 Play Framework 2 中急切获取嵌套集合的正确方法是什么?我试过这个:
Registration registration = find
.fetch("participants")
.fetch("participants.fieldValues")
.fetch("participants.fieldValues.field")
.where().eq("token", token).findUnique();
Run Code Online (Sandbox Code Playgroud)
出于某种原因,registration.participants.fieldValues.field对象只有一个 id。其余field属性为空。例如field.name,当它应该有一个值时为空。
编辑:如果我将 Field.name 设为私有并为其添加一个 getter/setter,那么我可以获得它的值。但是由于我使用的是fetch("participants.fieldValues.field")不应该让它在不需要 getter/setter 的情况下急切地获取吗?
我正在使用Play框架与Ebean和H2数据库.
问题是,BigDecimalDB脚本中的结果如下:
sum decimal(38),
Run Code Online (Sandbox Code Playgroud)
但我想要的是:
sum decimal(38,2),
Run Code Online (Sandbox Code Playgroud)
我已经尝试在模型中定义这样的值:
@Digits(integer=6, fraction=2)
private BigDecimal sum;
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
在我的基于Play框架的Web应用程序中,用户可以以csv或json格式下载不同数据库表的所有行.表格相对较大(100k +行),我试图使用Play 2.2中的分块来回传结果.
但问题是虽然println语句显示行被写入Chunks.Out对象,但它们不会显示在客户端!如果我限制发回的行将会起作用,但是如果我尝试发送所有行并导致超时或服务器内存不足,那么它在开始时也会有很大的延迟.
我使用Ebean ORM并且表被索引并且从psql查询不需要花费太多时间.有谁知道可能是什么问题?
我非常感谢你的帮助!
以下是其中一个控制器的代码:
@SecureSocial.UserAwareAction
public static Result showEpex() {
User user = getUser();
if(user == null || user.getRole() == null)
return ok(views.html.profile.render(user, Application.NOT_CONFIRMED_MSG));
DynamicForm form = DynamicForm.form().bindFromRequest();
final UserRequest req = UserRequest.getRequest(form);
if(req.getFormat().equalsIgnoreCase("html")) {
Page<EpexEntry> page = EpexEntry.page(req.getStart(), req.getFinish(), req.getPage());
return ok(views.html.epex.render(page, req));
}
// otherwise chunk result and send back
final ResultStreamer<EpexEntry> streamer = new ResultStreamer<EpexEntry>();
Chunks<String> chunks = new StringChunks() {
@Override
public void onReady(play.mvc.Results.Chunks.Out<String> out) {
Page<EpexEntry> page = EpexEntry.page(req.getStart(), req.getFinish(), 0); …Run Code Online (Sandbox Code Playgroud) 是否有其他方法可以删除数据库表的所有行而无需编写SQL删除语句?
List<Item> items = Ebean.find(Item.class).findList();
Ebean.delete(items);
Run Code Online (Sandbox Code Playgroud)
有没有像
Ebean.deleteAll(Item.class)
Run Code Online (Sandbox Code Playgroud)
在Ebean API?
我们将编写一个服务,我们正在尝试评估技术堆栈.因此,作为ORM的一部分,我们正在考虑使用hibernate,但是从我的一位同事那里我开始了解abt ebean.但我们对ebean一无所知.
所以我的问题是:hibernate,任何可销售性或性能瓶颈是否有任何缺点?ebean带来的优势是什么?
最近我开始使用Play framework 2.3.8.
但是模型的更新是没有工作的麻烦.
顺便说一下,save方法有效.
更新不适用于以下代码.(它不会持久存储到数据库中.)
User user = User.findByEmail(email);
user.remoteAddress = remoteAddress;
user.userAgent = userAgent;
user.latitude = latitude;
user.longitude = longitude;
user.lastLoginAt = new Date();
user.update();
Run Code Online (Sandbox Code Playgroud)
但是,以下代码将按预期工作.
User newUser = new User();
newUser.id = user.id;
newUser.remoteAddress = remoteAddress;
newUser.userAgent = userAgent;
newUser.latitude = latitude;
newUser.longitude = longitude;
newUser.lastLoginAt = new Date();
newUser.update();
Run Code Online (Sandbox Code Playgroud)
为什么我不能更新原始实例?
用户类如下.
package models.entities;
import java.util.*;
import javax.persistence.*;
import com.avaje.ebean.annotation.*;
import play.db.ebean.*;
import play.db.ebean.Model.Finder;
import play.data.validation.Constraints.*;
import play.Logger;
import models.services.*;
/**
* @author satouf
*/
@Entity
@Table(name="user") …Run Code Online (Sandbox Code Playgroud) 使用 Ebean finder 时,是否可以提供如下所示的 order by 语句:
ORDER BY
CASE
WHEN a = 'FOO' THEN 1
WHEN a = 'BAR' THEN 2
ELSE 99
END
Run Code Online (Sandbox Code Playgroud)