小编jl.*_*jl.的帖子

在Play-Scala中使用什么SQL访问层进行简单阅读?

我将在Play 2.1(Scala)中实现一个只读的Web应用程序.因为我只会读取和封送读取到JSON的数据,所以我想避免任何其他的DSL和映射.

我使用dapper-dot-net在.NET/C#中完成了类似的项目,并且对事情的结果非常满意.没有大惊小怪,锅炉板也不多.

我目前正在关注:

  • anorm(anormtyped看起来也很有希望,但可能要提前采用.避免将变量手动映射到case类构造函数参数看起来很棒.)
  • 前传
  • 光滑的 -因为它应该是在2.1做SQL的主要方式和主要平原SQL API

sql scala dapper anorm playframework-2.0

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

映射到子表两次 - @OneToMany 和 @ManyToOne

我正在尝试建模一个父实体,该实体具有子实体的集合(childHistory)以及指向最后添加的子实体(currentChild)的指针

class Parent {
    //unidirectional
    @OneToOne(cascade = CascadeType.PERSIST, optional = false)
    @JoinColumn(name = "current_child_id")
    private Child currentChild;

    //bidirectional
    @OneToMany(mappedBy = "parent")
    private List<Child> childHistory;

    public Parent() {
        currentChild = new Child(this);
        childHistory = new ArrayList<>();
        childHistory.add(currentChild);
    }

    public void add() {
        currentChild = new Child(this);
        childHistory = new ArrayList<>();
        childHistory.add(currentChild);
    }
}

class Child {
    @ManyToOne(optional = false)
    @JoinColumn(name = "parent_id")
    private Parent parent;
    public Child(Parrent parent) {
        this.parent = parent;
    }
}
Run Code Online (Sandbox Code Playgroud)

目前,当我尝试保存父级(并依靠级联来持久化子级)时,我遇到了瞬态实体的异常。我无法事先保存父级,因为我初始化了父级构造函数中的所有内容。

警告(导致异常......):

警告:HHH000437:尝试保存与未保存的瞬态实体具有不可为空关联的一个或多个实体。在保存这些依赖实体之前,必须在操作中保存未保存的瞬态实体。未保存的临时实体:([com.Parent#<null>]) 相关实体:([[com.Child#<null>]])不可为 …

java hibernate jpa

5
推荐指数
1
解决办法
753
查看次数

带隐式参数的泛型函数

我试图概括我用于从Play动作返回Json的一个函数.

我目前这样做:

def JsendOkObj(obj: JsValue) = Ok(Json.obj("status" -> "success", "data" -> obj))
Run Code Online (Sandbox Code Playgroud)

并称之为:

JsendOkObj(Json.toJson(myObj))
Run Code Online (Sandbox Code Playgroud)

我想做更多的事情:

def JsendOkObj[A](obj: A) = Ok(Json.obj("status" -> "success", "data" -> Json.toJson(obj)))
Run Code Online (Sandbox Code Playgroud)

然后称之为:

JsendOkObj(myObj)
Run Code Online (Sandbox Code Playgroud)

其中Json.toJson定义为:

def toJson[A](implicit arg0: Writes[A]): Enumeratee[A, JsValue]
Run Code Online (Sandbox Code Playgroud)

我编译的错误是我需要定义一个类型的Writes A.这是不可能的,因为我不知道哪种类型A最终会成为:

没有找到类型A的Json反序列化器.尝试为此类型实现隐式写入或格式.

scala playframework-2.0

3
推荐指数
1
解决办法
205
查看次数

标签 统计

playframework-2.0 ×2

scala ×2

anorm ×1

dapper ×1

hibernate ×1

java ×1

jpa ×1

sql ×1