我有一张这样的桌子:
id | name | score
Run Code Online (Sandbox Code Playgroud)
使用Hibernate通过XML映射到POJO.分数列我只需要oder byHQL中的in 子句.score列的值由算法计算,并通过SQL批处理(JDBC)每24小时更新一次.所以我不想用我在运行时不需要的属性来污染我的POJO.
对于可能不是问题的单个列,但我有几个不同的分数列.有没有办法只为HQL使用映射属性?
例如这样:
<property name="score" type="double" ignore="true"/>
Run Code Online (Sandbox Code Playgroud)
所以我仍然可以这样做:
from Pojo p order by p.score
Run Code Online (Sandbox Code Playgroud)
但我的POJO实现可能如下所示:
public class Pojo
{
private long id;
private String name;
// ...
}
Run Code Online (Sandbox Code Playgroud)
没有为score实现添加提供或属性的Setter .
使用最新的Hibernate版本的Java.
更新:
在完美的世界中,它可以这样做(感谢Pascal Thivent):
<property name="score" access="noop" insert="false" update="false"/>
Run Code Online (Sandbox Code Playgroud)
这是我的测试代码:
String foo = new String();
System.out.println(foo);
Run Code Online (Sandbox Code Playgroud)
输出为空白并写入新行.由于我是Java的新手,我不知道它是否是一个""字符串,或者空值是作为空行处理的.
几天后我使用了GWT 2.0.因此,我尝试使用登录表单编写基本应用程序,并且只有在我登录时才可访问页面.
通常在我的带有jsf的Web应用程序中,我使用Spring Security 3.0来配置和保护这种应用程序.所以,我决定尝试用我的GWT 2.0应用程序做同样的事情.
我已经很好地配置了Spring Security的服务器部分.因此,从我的GWT登录页面,我可以输入我的登录名/密码,并通过Spring Security执行身份验证.重定向到安全页面已完成,我可以通过对使用Spring Security的SecurityContext的安全服务的rpc调用来获取连接的用户.所以,我觉得那部分还可以.
但是,我有一个很大的问题来保护网址.实际上,我想保护页面以限制对特定角色的访问,就像我通常使用Spring Security一样.
在我的GWT应用程序中,我使用MVP模式和中央应用程序控制器.所以,我只有一个页面,对于那个页面,我将在将#name_of_view添加到URL的末尾时区分视图.例如,要在开发模式下访问我的登录页面,我在浏览器上使用以下URL:
http:// 127.0.0.1:8888/fr.myapp.Application/Application.html?gwt.codesvr=127.0.0.1:9997#login
一旦我正确登录,我将转到以下视图:
http:// 127.0.0.1:8888/fr.myapp.Application/Application.html?gwt.codesvr=127.0.0.1:9997#pagesecured
因此,我不知道如何在Spring Security中配置http标记以及如何定义拦截URL以影响它们以限制访问的特定角色.此外,我认为在开发模式和经典生产模式之间使用这些URL会有问题.不是吗?
那么,有人会有任何想法帮助我使用这些URL配置和保护我的应用程序吗?或者使用其他技术通过表单登录来保护应用程序?
谢谢你的帮助.
西尔万.
我有一个字符串
def data = "session=234567893egshdjchasd&userId=12345673456&timeOut=1800000"
Run Code Online (Sandbox Code Playgroud)
我想将它转换为地图
["session", 234567893egshdjchasd]
["userId", 12345673456]
["timeout", 1800000]
Run Code Online (Sandbox Code Playgroud)
这是我现在这样做的方式,
def map = [:]
data.splitEachLine("&"){
it.each{ x ->
def object = x.split("=")
map.put(object[0], object[1])
}
}
Run Code Online (Sandbox Code Playgroud)
它有效,但是有更有效的方法吗?
我想传递一个函数,该函数将参数传递给C#中的ThreadStart构造函数.但是,似乎这是不可能的,因为我得到一个语法错误,我尝试做这样的事情
Thread t1 = new Thread(new ThreadStart(func1(obj1));
Run Code Online (Sandbox Code Playgroud)
其中obj1是类型的对象List<string>(比如说).
如果我想要一个线程来执行这个接受一个对象作为参数的函数,并且我打算用不同的参数值同时创建2个这样的线程,那么实现这个的最佳方法是什么?
这是来自php手册:http://us.php.net/manual/en/language.constants.syntax.php
如果使用未定义的常量,PHP假定您指的是常量本身的名称,就像您将其称为字符串一样(CONSTANT vs"CONSTANT").发生这种情况时,将发出级别E_NOTICE的错误.
我真的不喜欢这种行为.如果我没有定义一个必需的常量,我宁愿脚本失败,所以我被迫定义它.如果它尝试使用未定义的常量,有没有办法强制PHP崩溃脚本?
例如.这两个脚本都做同样的事情.
<?php
define('DEBUG',1);
if (DEBUG) echo('Yo!');
?>
Run Code Online (Sandbox Code Playgroud)
和
<?php
if(DEBUG) echo('Yo!');
?>
Run Code Online (Sandbox Code Playgroud)
我宁愿第二个脚本DIE并声明它尝试使用未定义的常量DEBUG.
接收错误:[debug] mod_headers.c(663):headers:ap_headers_output_filter()
在我将其包含在htaccess文件中之后:
# 6 DAYS
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "max-age=518400, public"
</FilesMatch>
# 2 DAYS
<FilesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</FilesMatch>
# 2 HOURS
<FilesMatch "\.(html|htm)$">
Header set Cache-Control "max-age=7200, must-revalidate"
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
对于我能做些什么来解决这个问题,我们对此表示赞赏?
我希望我的 findbugs 报告不显示以下错误:
DM_NUMBER_CTOR:方法调用低效的 Number 构造函数;使用静态 valueOf 代替
问题是这发生在 groovy 生成的代码文件中,所以我无法控制源代码 - 这就是为什么我想排除它并将其添加到我的排除过滤器中。
我不想显式添加类(因为我制作了许多工具都会使用的 API,所以我希望我的过滤器是通用的)。我不想按类型从报告中完全删除这个错误,我真的只想排除这个错误,如果它发生在“静态初始化程序”方法中。任何的想法?我尝试了下面的过滤器,但没有运气,也许有人有更好的主意?
<Match>
<Method name="~.*static initializer.*" />
<Bug pattern="DM_NUMBER_CTOR" />
</Match>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,这是 FindBugs 的“堆栈跟踪”:
在类 net.milanaleksic.cuc.tools.sound.SoundPlayerTool 在方法 net.milanaleksic.cuc.tools.sound.SoundPlayerTool.() 中调用方法 new Long(long) 应该调用 Long.valueOf(long) 而不是在 SoundPlayerTool.groovy
我很确定这是一个愚蠢的问题,但它让我疯狂..
我怎么能在控制台上打印一个TCHAR阵列?
DWORD error = WSAGetLastError();
TCHAR errmsg[512];
int ret = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0, error, 0, errmsg, 511, NULL);
Run Code Online (Sandbox Code Playgroud)
我需要打印errmsg ...