我想为我正在研究的一个小项目设计数据库表的一些建议.假设在这个系统我有articles,subarticles和comments.
每篇文章都有子文章.文章和子文章都可以有评论.我考虑过为每个表自动增量int主键(即articleId,subarticleId和commentId).子粒子将有一个articleId作为Article表中的外键等.
但出于某些原因,我想要一个全球唯一ID的概念.实现这个的最佳方法是什么?我应该uuid在每个表中都有一个主键,并使用前面提到的Id列作为常规列(因为我仍然希望与每个对象关联的逻辑编号)?或者我应该制作某种object包含uuid?的主映射表?
有关实施此方法的好方法的任何建议将不胜感激!
我有一个域对象,其属性是包含另一个域对象的集合.这是使用hibernate映射(最终在另一个表上执行连接)来完成的.默认情况下,Hibernate似乎懒得实例化这个集合.事实证明这是件好事,因为根据我需要显示的内容,我并不总是需要加载集合.
我的问题如下:在编写我的hibernate查询时(在我的DAO中),我使用以下内容来打开/关闭会话:
Session session = getSessionFactory().openSession();
//query goes here using the session var
session.close();
Run Code Online (Sandbox Code Playgroud)
问题是:当Hibernate最终懒洋洋地加载我的集合时,Session很久就被关闭了!我怎么能绕过这个?我假设我必须像我一样关闭会议......
这是我得到的错误:
SEVERE: failed to lazily initialize a collection of ...
Run Code Online (Sandbox Code Playgroud) 为什么这样undefined:
var testObj = {
CONSTANT: "blah",
someVal: this.CONSTANT
}
console.debug(testObj.someVal); // prints "undefined"
Run Code Online (Sandbox Code Playgroud)
如果它与我实际创建新原型的事实有关,因此this关键字不起作用,那么我也想知道以下内容:
我正在使用Dean Edward的base.js,我正在尝试做类似于上面的事情:我有一个扩展Base的对象:
Test = Base.extend({
testObj: {
someVal: this.CONSTANT
}
CONSTANT: "blah";
});
var test1 = new Test();
console.debug(test1.testObj); // someVal is undefined
Run Code Online (Sandbox Code Playgroud)
在上面,如果我这样做,someVal: "blah"它按预期工作; 我只是不确定为什么我无法访问this.CONSTANT.如果因为它this被应用于范围testObj而不是Test,那么我该如何解决这个问题(我尝试设置that: this变量,没有运气)?
更新:基于答案,我看到我做错了.我现在的问题是:使用base.js模型,是否有一种方法可以从同一个类(函数外)中访问"类级"常量?
我发现自己在Option值上使用Scala map函数,如下所示:
optionVal.map( val => {
doSomethingWith(val)
doSomethingElseWith(val)
// etc. (an example could be executing a database query)
})
Run Code Online (Sandbox Code Playgroud)
其中optionVal可以是例如:
Option[String]
Run Code Online (Sandbox Code Playgroud)
换句话说,我使用它作为一种方法来确保Option填充了某些内容,如果是这样,则执行一个语句块.
对于我来自Java世界来说似乎有点奇怪和错综复杂,只会检查对象(if (someObject != null) { // execute statements}).此外,似乎它可能在语义上不是地图功能的目的,即使它有效.所以我想检查这是否是在Scala中执行此操作的正确/惯用方法.