小编ser*_*erg的帖子

如何在Hibernate中编写本机SQL查询而不对表名和字段进行硬编码?

有时,您必须使用本机SQL编写一些查询,而不是休眠HQL。有什么好方法可以避免对表名和字段进行硬编码,并从现有映射中获取此数据?

例如,代替:

String sql = "select user_name from tbl_user where user_id = :id";
Run Code Online (Sandbox Code Playgroud)

就像是:

String sql = "select " + Hibernate.getFieldName("user.name") + " from " + Hibernate.getTableName(User.class) + " where " + Hibernate.getFieldName("user.id") + " = :id";
Run Code Online (Sandbox Code Playgroud)

java hibernate

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

如何为AbstractRoutingDataSource安全频繁的DataSource切换?

我根据这篇文章实现了Spring + Hibernate的Dynamic DataSource Routing .我有几个具有相同结构的数据库,我需要选择哪个数据库将运行每个特定的查询.

在localhost上一切正常,但我担心这将如何在真正的网站环境中保持.他们使用一些静态上下文持有者来确定要使用的数据源:

public class  CustomerContextHolder {

   private static final ThreadLocal<CustomerType> contextHolder =
            new ThreadLocal<CustomerType>();

   public static void setCustomerType(CustomerType customerType) {
      Assert.notNull(customerType, "customerType cannot be null");
      contextHolder.set(customerType);
   }

   public static CustomerType getCustomerType() {
      return (CustomerType) contextHolder.get();
   }

   public static void clearCustomerType() {
      contextHolder.remove();
   }
}
Run Code Online (Sandbox Code Playgroud)

它被包装在一些ThreadLocal容器中,但究竟是什么意思呢?当两个Web请求并行调用此代码时会发生什么:

CustomerContextHolder.setCustomerType(CustomerType.GOLD);
//<another user will switch customer type here to CustomerType.SILVER in another request>
List<Item> goldItems = catalog.getItems();
Run Code Online (Sandbox Code Playgroud)

是否每个Web请求都包装在Spring MVC中的自己的线程中?将CustomerContextHolder.setCustomerType()变化是其他网络用户看到?我的控制器有synchronizeOnSession=true.

如何在我为当前用户运行所需查询之前确保没有其他人切换数据源?

谢谢.

java spring hibernate

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

如何检测动作弹出窗口何时关闭?

我希望在页面操作或浏览器操作弹出窗口关闭时触发一些代码.我试着聆听onunloadonbeforeunload事件的<body>window,但他们从来不火.

google-chrome-extension

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

Chrome Cookie API 不允许我使用返回值

我正在制作一个 chrome 扩展,它在用户登录时设置一个 cookie。当我尝试使用该chrome.cookies.get()方法读取 cookie 时,回调可以记录结果,但我无法将其从回调中传递出去。

function getCookie (cookieName){
    var returnVal; 
    chrome.cookies.get({
        'url':'https://addictedtogether.com/',
        'name':cookieName
    },
    function(data){
        console.log(data); //log displays returned cookie in a object
        returnVal=data;
    }
    );
    console.log(returnVal);  //log says this is undefined
    return returnVal;
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用几种不同的方式来传递结果,但似乎对象是未定义的,除非它是从回调中调用的。

javascript cookies google-chrome-extension

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

如何为某些Django Rest Framework视图启用@cache_page?

我有基本的休息框架设置:

url(r'^items/$', ItemList.as_view(), name='item-list'),
...
class ItemList(generics.ListCreateAPIView):
    model = Item
    serializer_class = ItemSerializer
Run Code Online (Sandbox Code Playgroud)

我想使用@cache_page装饰器缓存此请求.我尝试过像愚蠢的东西:

url(r'^items/$', cached_items, name='item-list'),
...
@cache_page(1000)
def cached_items(request):
    return ItemList.as_view()
Run Code Online (Sandbox Code Playgroud)

这不起作用.如何正确包装这些视图?

python django django-cache django-rest-framework

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

如何从Django QuerySet获取带有正确引用的过滤器参数的SQL?

MyModel.objects.filter(name="my name", date__lte=datetime.now()).query
Run Code Online (Sandbox Code Playgroud)

输出:

SELECT "mymodel"."id", "mymodel"."name", "mymodel"."date" 
FROM "mymodel" 
WHERE ("mymodel"."name" = my name AND "mymodel"."date" <= 2016-02-24 20:24:00.456974+00:00)
Run Code Online (Sandbox Code Playgroud)

这不是有效的SQL(未引用过滤器参数)。

我如何获取将要执行的确切SQL,即:

SELECT "mymodel"."id", "mymodel"."name", "mymodel"."date" 
FROM "mymodel" 
WHERE ("mymodel"."name" = 'my name' AND "mymodel"."date" <= '2016-02-24 20:24:00.456974+00:00'::timestamptz)
Run Code Online (Sandbox Code Playgroud)

django

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

MySQL中的条件排序?

我有3个字段的"任务"表:

  1. 日期
  2. 优先级(0,1,2)
  3. 完成(0,1)

我想要实现的是整个表按完成标记排序,未完成的任务应按优先级排序,而完成的任务应按日期排序:

  1. 通过完成asc从任务顺序中选择*
  2. 如果完成= 0,则按优先级desc排序
  3. 如果完成= 1另外按日期desc排序

没有工会可以在MySQL中执行此操作吗?

谢谢.

mysql sql sorting

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

无法在jQuery中捕获Ctrl + Alt +箭头键事件

由于一些奇怪的原因,我无法在textarea中捕获Ctrl+ Alt+ Arrow组合键.它是某种被Windows吞噬的系统热键吗?Ctrl+ Alt+ Any LetterCtrl+ Alt+ Shift+ Arrow被捕获得很好.

$(document).ready(function() {
    $("textarea").bind("keydown", function(event) {
        console.log(event);
        if(event.altKey && event.ctrlKey && event.which == 38) {
            console.log("ctrl+alt+up"); //never triggered
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

当按下Ctrl+ Alt+时Any Letter,我在控制台中看到所有3个事件.当按下Ctrl+ Alt+时Arrow,我只看到2个事件(for CtrlAlt).

有任何想法吗?

javascript jquery javascript-events

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

无法为新创建的相册设置隐私

我正在尝试创建每个人都可以看到的专辑:

FB.api("/me/albums", "post", {
    name: "album name", privacy: '{"value":"EVERYONE"}'
}, function(response) {
    //...
});
Run Code Online (Sandbox Code Playgroud)

但它是通过friends隐私创建的.

文件说这个privacy领域是:

一个JSON编码的对象,用于定义相册的隐私设置,例如:{"value":"SELF"}

value:对象的隐私值,指定EVERYONE,CUSTOM,ALL_FRIENDS,NETWORKS_FRIENDS,FRIENDS_OF_FRIENDS,SELF之一.

我试过'{"value":"EVERYONE"}',{"value":"EVERYONE"},{value:"EVERYONE"}-没有影响.这是一个错误还是我遗失了什么?

facebook facebook-graph-api

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

Chrome扩展程序:将变量传递给弹出窗口

我正在尝试为谷歌浏览器创建一个扩展.我正在监视页面文本选择,我希望弹出页面在我单击弹出按钮时接收所选文本.

有没有办法将变量传递给弹出窗口?我明白,这种混乱对于封闭的弹出窗口不起作用,所以我该怎么办?

google-chrome-extension

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