小编Isa*_*aac的帖子

为什么复合键在休眠时不鼓励?

这是来自Hibernate的官方教程:

还有一个替代<composite-id>声明允许使用复合键访问旧数据.其他任何东西都强烈建议不要使用它.

为什么复合键不鼓励?我正在考虑使用一个3列表,其中所有列都是外键,并且一起形成一个主键,在我的模型中是一个有意义的关系.我不明白为什么这是一个坏主意,特别是我将使用它们的索引.

有什么选择?创建一个额外的自动生成列并将其用作主键?我仍然需要查询我的3列!?

简而言之,为什么这句话是真的?什么是更好的选择?

java database orm hibernate composite-key

37
推荐指数
3
解决办法
2万
查看次数

如何在d3文本函数中返回html?

我希望能够从文本函数返回html,如下所示:

textEnter.append("tspan")
          .attr("x", 0)
          .text(function(d,i) {
             return 'some text' + '<br/>' + d.someProp;
           })
Run Code Online (Sandbox Code Playgroud)

试图使用&lt;br&gt;,但没有奏效.我该如何实现这一目标?

javascript d3.js

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

如何使用django 1.7.3/postgres迁移在db中设置默认列值?

列上的默认值似乎仅在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_timestampcreated_at修饰符中设置迁移?如果没有,是否有办法传递原始SQL迁移?我需要它,因为数据库被其他进程(例如批处理进程)使用,我不想在应用程序层上强制执行默认值等操作.

python django postgresql django-models django-migrations

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

获得唯一的正则表达式匹配结果(不使用地图或列表)

有没有办法只获得独特的比赛?在匹配后不使用列表或映射,我希望匹配器输出立即是唯一的.

样本输入/输出:

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)

java regex unique matcher pattern-matching

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

升级到1.8.1后,Django管理员休息

我从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)

django

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

如何使用非空字段实现"完整的后期"功能?

环境
Spring/hibernate/MySQL Web应用程序

问题
我有一个多步形式,在以后完成的每一步都应该是可以保存的.但是,不完整的步骤可能包含模型所需的字段,从而无法保存模型.

我尝试或想过的尝试

  1. 使字段可以为空.
  2. 使用临时表来保存不完整的表单

但是..
解决方案1破坏了数据库设计,解决方案2将使用片段膨胀我的代码以在临时模型和永久模型之间进行转换,如果我在保存后添加编辑表单的能力,这将变得很难看.

如何以无缝和优雅的方式实现完整的后续功能?

java spring hibernate java-ee

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

线程中的最终字段语义

这是来自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)

java multithreading final thread-safety jls

6
推荐指数
1
解决办法
735
查看次数

dataType'application/json'与'json'

可能重复:
$ .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)

javascript jquery json

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

在密钥中共享defaultdict中的Dict

我在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为.这是为什么?如何在没有太多性能开销的情况下改变这种行为?

python dictionary

4
推荐指数
1
解决办法
136
查看次数

SQL根据列的计数进行分组

假设表包含以下颜色:

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的.

mysql sql oracle db2

3
推荐指数
2
解决办法
234
查看次数