标签: ebean

使用Ebean映射String和Enum的集合(Play 2.0)

我在我的实体中映射字符串和枚举的集合时遇到问题.我遵循了不同的建议,但似乎没有任何效果.我正在使用PlayFramework 2.0和提供的Ebean作为ORM.

这是一个插图类:

package models;

import java.util.*;
import javax.persistence.*;
import play.db.ebean.Model;

@Entity
@Table(name = "foo")
public class Foo extends Model {

    private static final long serialVersionUID = 1L;

    private enum FooBar {
        FOO, BAR;
    }

    @Id
    public Long id;

    @ElementCollection
    @Enumerated(EnumType.STRING)
    @CollectionTable(name = "bar_foobar", 
        joinColumns = @JoinColumn(name = "bar_id", 
            referencedColumnName = "id"))
    @Column(name = "foobar")
    public List<FooBar> fooBars;

    @ElementCollection(targetClass = String.class)
    @CollectionTable(name = "bar_strings", 
        joinColumns = @JoinColumn(name = "bar_id"))
    @Column(name = "string", nullable = false)    
    public List<String> listOfStrings;

    @Basic
    public …
Run Code Online (Sandbox Code Playgroud)

java jpa ebean playframework-2.0

10
推荐指数
1
解决办法
4860
查看次数

如何在Ebean中创建自定义INSERT INTO查询?

我需要填充一个包含大量数据的表,所以我不想找到相关的对象,只需要输入它们的数值.为此,我将构建一个简单的查询,即:

INSERT INTO article_category (article_id, category_id) VALUES (2,12);
Run Code Online (Sandbox Code Playgroud)

无论如何都找不到用Ebean做这个的方法,我试过:

RawSql rawSql = RawSqlBuilder
    .parse("INSERT INTO article_category (article_id, category_id) VALUES (2,12)")
    .create();
Run Code Online (Sandbox Code Playgroud)

然而,这引发了一个例外:

[RuntimeException:解析sql时出错,找不到SELECT关键字:INSERT INTO article_category(article_id,category_id)VALUES(2,12)]

如何用Ebean调用真正的原始查询?

playframework ebean playframework-2.0

9
推荐指数
2
解决办法
8274
查看次数

Ebean - 包含外键的复合主键

我正在使用playframework(2.0.4)和Ebean ORM的最新版本.这是我简化的数据库模式

TABLENAME (FIELD_NAME (, ...) )
User (id)
Group (id)
UserGroup (user_id, group_id, is_active)
Run Code Online (Sandbox Code Playgroud)

我想创建我的实体模型,如下所示:

@Entity
public class UserGroup extends Model {
    private static final long serialVersionUID = 1L;

    @EmbeddedId
    public UserGroupPK pk;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "user_id", insertable = false, updatable = false)
    public User user;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "group_id", insertable = false, updatable = false)
    public Group group;
}

@Embeddable
public class UserGroupPK implements Serializable{
    private static final long serialVersionUID = 1L;

    public Long …
Run Code Online (Sandbox Code Playgroud)

ebean playframework-2.0

9
推荐指数
1
解决办法
4046
查看次数

Ebean ManyToMany查询

我有两个班,用户和汽车.两者都有ManyToMany相互映射.

用户:

@Entity
public class User extends Model {

    private int year;

    @ManyToMany(cascade=CascadeType.ALL)
    private List<Car> cars;
}
Run Code Online (Sandbox Code Playgroud)

汽车:

@Entity
public class Car extends Model {
    @ManyToMany(mappedBy = "cars", cascade=CascadeType.ALL )
    private List<User> users;
}
Run Code Online (Sandbox Code Playgroud)

使用ebean,我只想查询1999年那些在其列表中提供用户的汽车.我不想在Java代码中迭代用户的汽车列表.

我没有找到任何文档,多少对多的查询应该是什么样子.所以我会这样:

public List<Car> findCars(int year, User user) {
    return Car.find.where().eq("year", int).eq("users", user).findList();
}
Run Code Online (Sandbox Code Playgroud)

这可能与Ebean有关吗?

java many-to-many ebean playframework-2.1

8
推荐指数
1
解决办法
4369
查看次数

使用setDistinct()的Ebean查询不起作用

我在剧中使用了一个ebean查询!框架,用于根据不同的列查找记录列表.这似乎是一个非常简单的查询,但问题是ebean方法setDistinct(true)实际上并没有将查询设置为distinct.

我的查询是:

List<Song> allSongs = Song.find.select("artistName").setDistinct(true).findList();
Run Code Online (Sandbox Code Playgroud)

在我的结果中,我得到重复的艺术家姓名

从我所看到的,我相信这是正确的语法,但我可能是错的.我很感激任何帮助.谢谢.

java sql playframework ebean

8
推荐指数
1
解决办法
4582
查看次数

如何描述Ebean的桥接表?

可以说我有这些表:

ORDER: id
ITEM: id
ORDER_ITEM: order_id, item_id

表:ORDER_ITEMORDER和之间的桥表ITEM.

我如何描述这三人组Ebean

我宁愿不使用原始SQL,以便我仍然可以创建和更新这些实体.

更新于 11月9日星期六02:32:40 UTC 2013

好吧,让我们更难以解决这个问题,更能代表我的实际情况.列名称不符合约定:

ORDER: order_number
ITEM: item_number
ORDER_ITEM: my_order, my_item

java jpa playframework ebean playframework-2.2

8
推荐指数
1
解决办法
6153
查看次数

如何在Ebean中对相关实体进行排序?

我正在使用Play Framework和Ebean ORM.说,我有2个相关的实体类(Card.java和FinalMark.java)

Card.java

@Entity
public class Card extends Model {

  private static final long serialVersionUID = 1L;
  @Id
  . . .
  @OneToMany(mappedBy = "card")
  public List<FinalMark> finalMarks;
  . . .
  public static Finder<Integer, Card> find =
    new Finder<>(Integer.class, Card.class);

}
Run Code Online (Sandbox Code Playgroud)

FinalMark.java

@Entity
public class FinalMark extends Model {

  private static final long serialVersionUID = 1L;
  @Id
  @ManyToOne
  public Card card;
  . . .
  public static Finder<Integer, FinalMark> find = new Finder<>(Integer.class,
    FinalMark.class);
}
Run Code Online (Sandbox Code Playgroud)

当我获取Card实例时(例如,通过Card.find.byId()),FinalMark也将获取所有相关实例.但我怎么能对它们进行排序呢?Ebean或我应该对结果列表进行排序吗?

谢谢你浪费你的时间.

java ebean playframework-2.0

8
推荐指数
1
解决办法
3539
查看次数

是否可以将@PrePersist和@PreUpdate与eBean和Play一起使用!2.0?

我想知道是否有可能使用@PrePersist,并@PreUpdateEbean玩吧!2.0.如果是这样,该功能如何激活.我已经看到一个月前有一个拉取请求添加此功能,但我无法在Play 2.0上进行此操作.

谢谢

playframework ebean playframework-2.0

7
推荐指数
2
解决办法
2624
查看次数

使用Ebean和Play Framework 2的OptimisticLockException

我在Play Framework 2中使用Ebean,有时会出现类似的OptimisticLockException:

play.core.ActionInvoker$$anonfun$receive$1$$anon$1: Execution exception [[OptimisticLockException: Data has changed. updated [0] rows sql[update manager set modification_time=?, session_id=?, expiration_date=? where id=? and rating=? and creation_time=? and modification_time=? and name=? and surname=? and login=? and password_hash=? and email=? and session_id=? and expiration_date=?] bind[null]]]
Run Code Online (Sandbox Code Playgroud)

当少数演员开始访问数据库时会发生这种情况

那么,Manager类是:

public class Manager extends Model {
@Getter @Setter
Long id;

@Getter @Setter
private String name;

@Getter @Setter
private String surname;

@Column(unique = true)
@Getter @Setter
private String login;

@Getter @Setter
private String passwordHash;

@Getter @Setter
private …
Run Code Online (Sandbox Code Playgroud)

ebean playframework-2.0

7
推荐指数
1
解决办法
5505
查看次数

在Java列表上尝试stream().filter().collect(Collectors.toList())时获取NullPointerException

我在尝试搜索列表中的特定Java对象时遇到了问题.
实际上我得到了我想为另一个Java类工作的搜索功能.现在我尝试了另一个但不是返回结果列表我得到一个NullPointerException.

这就是我的功能:

 public static List<Customer> searchByEverything(String keyword){
    List<Customer> customerList = find.all(); //Using java Ebean

    System.out.println(keyword); //Check if keyword is not empty
    System.out.println(customerList); //Check if list is not empty

    Predicate<Customer> customerPredicate = u -> u.name.toLowerCase().contains(keyword.toLowerCase());

    try{
        return customerList.stream().filter(customerPredicate).collect(Collectors.toList());
    }catch (Exception e){
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

这是来自Exception e的strack trace:

java.lang.NullPointerException
at models.Customer.lambda$searchByEverything$2(Customer.java:174)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
at java.util.ArrayList$Itr.forEachRemaining(ArrayList.java:891)
at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
at models.Customer.searchByEverything(Customer.java:179)
at controllers.Application.searchCustomers(Application.java:262)
at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$17$$anonfun$apply$17.apply(Routes.scala:479)
at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$17$$anonfun$apply$17.apply(Routes.scala:479)
at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:157)
at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:156)
at play.core.routing.HandlerInvokerFactory$JavaActionInvokerFactory$$anon$14$$anon$3$$anon$1.invocation(HandlerInvoker.scala:136)
at …
Run Code Online (Sandbox Code Playgroud)

java lambda list nullpointerexception ebean

7
推荐指数
1
解决办法
1万
查看次数