这是来自Hibernate的官方教程:
还有一个替代
<composite-id>声明允许使用复合键访问旧数据.其他任何东西都强烈建议不要使用它.
为什么复合键不鼓励?我正在考虑使用一个3列表,其中所有列都是外键,并且一起形成一个主键,在我的模型中是一个有意义的关系.我不明白为什么这是一个坏主意,特别是我将使用它们的索引.
有什么选择?创建一个额外的自动生成列并将其用作主键?我仍然需要查询我的3列!?
简而言之,为什么这句话是真的?什么是更好的选择?
我希望能够从文本函数返回html,如下所示:
textEnter.append("tspan")
.attr("x", 0)
.text(function(d,i) {
return 'some text' + '<br/>' + d.someProp;
})
Run Code Online (Sandbox Code Playgroud)
试图使用<br>,但没有奏效.我该如何实现这一目标?
列上的默认值似乎仅在ORM层上,并且实际上并未在DB中设置默认值.同时,ID键例如在数据库中有一个默认修饰符,它告诉我可以这样做,但不知道怎么做?
示例代码:
class Host(models.Model):
name = models.CharField(max_length=255, null=False)
created_at = models.DateTimeField(default=datetime.now, blank=True)
Run Code Online (Sandbox Code Playgroud)
创建下表:
Column | Type | Modifiers
------------+--------------------------+-------------------------------------------------------------
id | integer | not null default nextval('myapp_host_id_seq'::regclass)
name | character varying(255) | not null
created_at | timestamp with time zone | not null
Run Code Online (Sandbox Code Playgroud)
有没有办法default current_timestamp在created_at修饰符中设置迁移?如果没有,是否有办法传递原始SQL迁移?我需要它,因为数据库被其他进程(例如批处理进程)使用,我不想在应用程序层上强制执行默认值等操作.
有没有办法只获得独特的比赛?在匹配后不使用列表或映射,我希望匹配器输出立即是唯一的.
样本输入/输出:
String input = "This is a question from [userName] about finding unique regex matches for [inputString] without using any lists or maps. -[userName].";
Pattern pattern = Pattern.compile("\\[[^\\[\\]]*\\]");
Matcher matcher = pattern.matcher(rawText);
while (matcher.find()) {
String tokenName = matcher.group(0);
System.out.println(tokenName);
}
Run Code Online (Sandbox Code Playgroud)
这将输出以下内容:
[userName]
[inputString]
[userName]
Run Code Online (Sandbox Code Playgroud)
但我希望它输出以下内容:
[userName]
[inputString]
Run Code Online (Sandbox Code Playgroud) 我从1.7.3升级到1.8.1,我的管理员没有工作,网站没有加载,因为它在解析路径时失败了.
例外:
Enable 'django.contrib.auth.context_processors.auth' in your TEMPLATES setting in order to use the admin application.
Run Code Online (Sandbox Code Playgroud)
这是堆栈跟踪:
Environment:
Request Method: GET
Request URL:
Django Version: 1.8.1
Python Version: 2.7.8
Installed Applications:
('django.contrib.admin',
..)
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
..)
Traceback:
File "/app/.heroku/python/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
119. resolver_match = resolver.resolve(request.path_info)
File "/app/.heroku/python/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve
366. for pattern in self.url_patterns:
File "/app/.heroku/python/lib/python2.7/site-packages/django/core/urlresolvers.py" in url_patterns
402. patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/app/.heroku/python/lib/python2.7/site-packages/django/core/urlresolvers.py" in urlconf_module
396. self._urlconf_module = import_module(self.urlconf_name)
File "/app/.heroku/python/lib/python2.7/importlib/__init__.py" in import_module
37. __import__(name)
File "/app/appname/urls.py" …Run Code Online (Sandbox Code Playgroud) 环境
Spring/hibernate/MySQL Web应用程序
问题
我有一个多步形式,在以后完成的每一步都应该是可以保存的.但是,不完整的步骤可能包含模型所需的字段,从而无法保存模型.
我尝试或想过的尝试
但是..
解决方案1破坏了数据库设计,解决方案2将使用片段膨胀我的代码以在临时模型和永久模型之间进行转换,如果我在保存后添加编辑表单的能力,这将变得很难看.
如何以无缝和优雅的方式实现完整的后续功能?
这是来自JLS 17.5:
最终字段的使用模型很简单.在该对象的构造函数中设置对象的最终字段.在对象的构造函数完成之前,不要在另一个线程可以看到的位置写入对正在构造的对象的引用.如果遵循此原因,那么当另一个线程看到该对象时,该线程将始终看到该对象的最终字段的正确构造版本.它还将看到那些最终字段引用的任何对象或数组的版本,这些字段至少与最终字段一样是最新的.
JLS 17.5中的讨论包括以下示例代码:
class FinalFieldExample {
final int x;
int y;
static FinalFieldExample f;
public FinalFieldExample() {
x = 3;
y = 4;
}
static void writer() {
f = new FinalFieldExample();
}
static void reader() {
if (f != null) {
int i = f.x; // guaranteed to see 3
int j = f.y; // could see 0
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试重用这段代码来复制上面的情况,这就是我所拥有的:
public class FinalFieldThread extends Thread {
public static void main(String[] args) {
ThreadA …Run Code Online (Sandbox Code Playgroud) 可能重复:
$ .ajax - dataType
我使用的是jQuery 1.8.2,由于某些原因'application/json'不起作用,但是对标准调用'json' 起作用.这是一个小故障吗?与版本相关的区别?或两者之间是否存在既定差异?dataTypejquery ajax
$(document).ready(function() {
$.ajax({
type : "POST",
url : '<c:url value="/url.htm" >',
//dataType : "application/json", <-- does not work
dataType: 'json' // <-- works
success : function(data) {
// do something
},
error : function(data) {
// do something else
}
});
});
Run Code Online (Sandbox Code Playgroud) 我在defaultdict中有一个字典.我注意到字典是在键之间共享的,因此它需要最后一次写入的值.我该如何隔离这些词典?
>>> from collections import defaultdict
>>> defaults = [('a', 1), ('b', {})]
>>> dd = defaultdict(lambda: dict(defaults))
>>> dd[0]
{'a': 1, 'b': {}}
>>> dd[1]
{'a': 1, 'b': {}}
>>> dd[0]['b']['k'] = 'v'
>>> dd
defaultdict(<function <lambda> at 0x7f4b3688b398>, {0: {'a': 1, 'b': {'k': 'v'}}, 1:{'a': 1, 'b': {'k': 'v'}}})
>>> dd[1]['b']['k'] = 'v2'
>>> dd
defaultdict(<function <lambda> at 0x7f4b3688b398>, {0: {'a': 1, 'b': {'k': 'v2'}}, 1: {'a': 1, 'b': {'k': 'v2'}}})
Run Code Online (Sandbox Code Playgroud)
请注意,这两个字典v都设置v2为.这是为什么?如何在没有太多性能开销的情况下改变这种行为?
假设表包含以下颜色:
id integer,
name char(6),
status integer
Run Code Online (Sandbox Code Playgroud)
并有以下数据:
id id2 type
--- ----- ----
01 Adam 1
02 Bob 1
03 Adam 2
04 Caymen 1
05 Ahmed 1
06 Basel 1
07 Ahmed 2
08 Bob 2
09 Ahmed 2
10 Mike 1
Run Code Online (Sandbox Code Playgroud)
因此它基本上跟踪不同用户的状态进展.
我想对状态计数进行分组.换句话说,我想知道有多少用户只有1个状态,有多少有2个状态,有多少有3个状态等等.
预期的输出将是这样的:
num_of_statuses count
--------------- -----
1 3
2 2
3 1
Run Code Online (Sandbox Code Playgroud)
我试过了,但还没找到解决方案.任何语法都可以.SQL/MySQL的/ DB2/Oracle的.