我正在使用ebean,它很容易使用,但我不知道创建我的自定义索引.
@Entity
@Table(name="users")
public class User {
public String name;
// how to create index for this column?
public long displayOrder;
}
Run Code Online (Sandbox Code Playgroud)
我试图为列创建索引displayOrder,但是怎么做呢?
没有注释,每次都会重新生成生成的ddl文件,所以我不能在那里添加自己的ddl语句.直接在数据库中添加索引并不方便.
有没有简单的解决方案呢?
我正在学习Play Framework.我创建了一些Form并将相应的对象保存到我的数据库中:
object.save();
Run Code Online (Sandbox Code Playgroud)
我想获得刚刚保存的对象.我检查了文档,发现save()没有返回类型.
那么无论如何我能得到那个对象吗?(对象表的id列设置为自动递增,如果这可能有帮助)
我正在使用Ebean进行对象映射,并且我已经创建了我的SQL表
create table company (
id int auto_increment not null primary key,
name varchar(100)
);
create table employee (
id int auto_increment not null primary key,
name varchar(100) not null,
company_id int not null,
constraint foreign key (company_id) references company (id)
on delete restrict on update restrict
);
Run Code Online (Sandbox Code Playgroud)
这是Ebean公司的模型
import javax.persistence.Entity;
import javax.persistence.Id;
import com.avaje.ebean.Model;
@Entity
public class Company extends Model
{
@Id
public Integer id;
public String name;
}
Run Code Online (Sandbox Code Playgroud)
和员工模型
@Entity
public class Employee extends Model
{
@Id
public …Run Code Online (Sandbox Code Playgroud) 我知道我可以使用Ebean或EbeanServer访问数据库.EbeanServer有比Ebean更多的API方法,Ebean上的许多方法Ebean.find(Class)等实际上只是在'default/primary'EbeanServer上调用方法的一种方便方法.
我的问题:
Ebean.getServer(String name)使用EbeanServer提供的所有apis来获取EbeanServer对象吗?在Play 2.4中,不需要ebean.properties,ebean配置可以放在application.conf中,我想我应该在Play framwork 2.4中使用Ebean,对吧?
谢谢你的建议.
我的项目中有一个模型类"Journey",它有几种删除,创建和列出所有旅程的方法.我正在使用heroku和postgresql数据库.我需要编写一个方法,它将返回所有具有与指定地址类似的地址的旅程.我知道查询结构通常是类似的SELECT address FROM Journey WHERE address ~~ arguement但我不知道在play框架中有什么功能可以做到这一点.
*public static void search(String address){
//query
//return matching journey results
}*
Run Code Online (Sandbox Code Playgroud) 美好的一天!我总是得到一个错误,以保存我的实体模型
Error inserting bean [class models.CategoryEntity] with unidirectional relationship. For inserts you must use cascade save on the master bean [class models.CategoryEntity].]
Run Code Online (Sandbox Code Playgroud)
在这里我的课
@Entity
public class CategoryEntity extends Model {
@Id
private String categoryId;
private String Name;
private Integer level;
@OneToMany(targetEntity = CategoryEntity.class, cascade = CascadeType.ALL)
private List<CategoryEntity> categories;
//GETERS SETRES
}
Run Code Online (Sandbox Code Playgroud)
我试图保存标题类别,但错误是相同的
java playframework ebean playframework-2.0 playframework-2.1
有两种型号:
车型/ User.java
@Entity
@Table(name="users")
public class User extends Model
{
@Id
public int user_id;
public String firstName;
public String lastName;
@OneToOne
@PrimaryKeyJoinColumn
public UserProfile profile;
public static Finder<Integer,User> find = new Finder<Integer,User>( Integer.class, User.class );
}
Run Code Online (Sandbox Code Playgroud)
车型/ UserProfile.java
@Entity
@Table(name="user_profiles")
public class UserProfile extends Model
{
@Id
public int user_id;
public String bio;
@OneToOne(mappedBy = "user_id")
public User user;
public static Finder<Integer,UserProfile> find = new Finder<Integer,UserProfile>( Integer.class, UserProfile.class );
}
Run Code Online (Sandbox Code Playgroud)
一些数据:
INSERT INTO users VALUES(1,"Joe","Bloh");
INSERT INTO users VALUES(2,"Maria","Luis"); …Run Code Online (Sandbox Code Playgroud) 我希望Play Framework中的Ebean在我的表中创建一些列'not null'.是否有可能@NotNull注释?如果是,我应该导入哪个包?我尝试过,import com.avaje.ebean.validation.NotNull;但我得到一个错误,说无法找到此包.
我需要根据一些标准从表中删除一些行.SQL查询应该是这样的:
DELETE FROM tablename WHERE cond1 = 1 AND cond2 = 2
Run Code Online (Sandbox Code Playgroud)
但我发现没有这样的方法.我可以删除一个模型:
model.delete();
Run Code Online (Sandbox Code Playgroud)
或者我可以获得符合给定标准的模型列表:
Model.FINDER.where().eq("cond1", 1).eq("cond2", 2).findList();
Run Code Online (Sandbox Code Playgroud)
当然,我可以获得模型列表并在循环中删除它们,但这是非常糟糕的解决方案.我没有获得一个SQL请求,而是获得了无限的SQL请求.我也不想执行原始SQL代码,因为它可以破坏SQL跨平台兼容性.
这经常是一项任务.Play Framework是否无法使用它?
Ebean自从我开始使用以来,我一直在度过一段难过的时光Play Framework.
Ebean刚刚修复了一个影响我的bug,但似乎修复程序在上次部署Play时没有被选中,这是我已经更新的v2.2.2.
可以在我的实例中手动升级Ebean吗?