我在Play Framework 2中有一个简单的模型,如果执行INSERT时没有提供,我想指定一个默认值插入指定的INT列.
模型:
@Entity
@Table(name = "DashboardOptions", schema = "dbo")
public class DashboardOptions extends Model implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
public Long id;
@Basic(optional = false)
@Column(name = "userId")
public Long userId;
@Column(name = "chartType")
public String chartType;
public String name;
public Integer size = 2;
Run Code Online (Sandbox Code Playgroud)
我希望默认情况下size填充列2,但是,如果我指定上面的默认值,我的数据库演变不会反映这一点:
create table dbo.DashboardOptions (
id numeric(19) identity(1,1) not null,
userId numeric(19) not null, …Run Code Online (Sandbox Code Playgroud) 我有一个代表用户的javascript对象数组,如下所示:
[
{ userName: "Michael",
city: "Boston"
},
{ userName: "Thomas",
state: "California",
phone: "555-5555"
},
{ userName: "Kathrine",
phone: "444-4444"
}
]
Run Code Online (Sandbox Code Playgroud)
一些对象包含某些属性,但不包含其他属性。我需要一种干净的方法来确保所有对象都具有相同的属性。如果它们不存在,我希望它们具有一个空字符串值,如下所示:
[
{ userName: "Michael",
city: "Boston",
state: "",
phone: ""
},
{ userName: "Thomas",
city: "",
state: "California",
phone: "555-5555"
},
{ userName: "Kathrine",
city: "",
state: "",
phone: "444-4444"
}
]
Run Code Online (Sandbox Code Playgroud)
更新 我应该更具体一些。我一直在寻找可以动态处理这种情况的选项,因此不必提前知道属性。
对于特定于jQuery的$.extend()选项是一个不错的选择,但只有在您提前知道所有属性的情况下才起作用。
一些人提到这可能应该是服务器端的任务,虽然我通常对此表示同意,但是有两个原因导致我不在服务器端处理此问题:1)如果说,它将是一个较小的JSON对象1000个对象中的900个仅包含9个可能属性中的1个。2)需要添加“空”属性来满足JS实用程序的需要,将来可以用某种不在乎某些属性丢失的东西代替它。
Ebean自从我开始使用以来,我一直在度过一段难过的时光Play Framework.
Ebean刚刚修复了一个影响我的bug,但似乎修复程序在上次部署Play时没有被选中,这是我已经更新的v2.2.2.
可以在我的实例中手动升级Ebean吗?