问题列表 - 第40429页

验证不适用于EntityManager.merge()

我对我的实体有很少的验证,比如@NotNull和某些一代,比如

@Id
@GeneratedValue(strategy = AUTO)
@Column(name = "ID")
private Long id;

@Column
@GeneratedValue(strategy = GenerationType.AUTO)
private Long referenceNumber;
Run Code Online (Sandbox Code Playgroud)

但是,在调用EntityManager.merge()此值时不会生成.带@NotNull注释的空字段无需任何抱怨即可传递.甚至id没有生成.

我应该以某种方式切换这一代吗?怎么样,在哪里?

java validation jpa java-ee bean-validation

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

Android资源 - 数组数组

我正在尝试实现一个包含数组数组的资源数据结构,特别是字符串.我遇到的问题是如何获取子数组对象及其特定值.这是我的资源文件的样子....

<resources>
   <array name="array0">
     <item>
       <string-array name="array01">
         <item name="id">1</item>
         <item name="title">item one</item>
       </string-array>
     </item>
     <item>
       <string-array name="array02">
         <item name="id">2</item>
         <item name="title">item two</item>
       </string-array>
     </item>
     <item>
       <string-array name="array03">
         <item name="id">3</item>
         <item name="title">item three</item>
       </string-array>
     </item>
   </array>
</resources>
Run Code Online (Sandbox Code Playgroud)

然后,在我的Java代码中,我检索数组并尝试访问子元素,如此...

TypedArray typedArray = getResources().obtainTypedArray(R.array.array0);

TypedValue typedValue = null;

typedArray.getValue(0, typedValue);
Run Code Online (Sandbox Code Playgroud)

此时,typedArray对象应该表示字符串数组"array01",但是,我没有看到如何检索"id"和"title"字符串元素.任何帮助将不胜感激,提前谢谢.

java xml android

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

如何将对象中的所有参数(逐个)传递给AS3中的构造函数?

这是一个很难回答的问题,但我会试着解释一下.我将Class其构造函数和参数作为对象.我需要做的是一个函数,它返回这个类的一个实例,将这些参数传递给构造函数.

这是代码:
一些随机和不可修改的类:

public Foo {
    public function Foo(a:int, b:String) {
        // constructor
    }
}
Run Code Online (Sandbox Code Playgroud)

还有一些功能(在另一个类中):

function bar(params:Object):* {  
    var baz:Foo = new Foo(params.a, params.b);
    return baz;
}
Run Code Online (Sandbox Code Playgroud)

我需要做的是使这个函数通用,没有params作为参数传递给Foo构造函数,因为我无法修改它.就像是:

function bar2(clazz:Class, params:Object):* {
    var baz:* = new clazz(/*some magic way to transform params in comma separated parameters*/);
    return baz;
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗?
非常感谢.

constructor class actionscript-3 params

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

新C++是否向后兼容

我多年没用C++编写代码了.我最近发现,在那些年里它发生了巨大变化.我不确定我是否喜欢这些变化,但这是另一个讨论.

我仍然有一些C++代码敲我的硬盘.如果我把它拿出来并尝试用一个不错的新C++编译器编译它,比如说最新版本的g ++,它会编译吗?没有警告(假设它之前没有警告编译)?

最近我确实搞乱了一些VC++ 2010,并发现了一些我期望工作的东西不起作用,并且当我尝试使用NULL时根据上下文得到不同的消息.但是在该代码的一部分中,我使用NULL甚至没有警告.

c++

9
推荐指数
4
解决办法
3575
查看次数

valgrind :一次打开多个抑制文件

我有一个脚本,它使用 valgrind 执行我的单元测试。现在脚本变大了,因为我可能有 10 个抑制文件(每个库一个),而且我可能不得不添加更多抑制文件。

现在,而不是有这样的一行:

MEMCHECK_OPTIONS="--tool=memcheck -q -v --num-callers=24 --leak-check=full --show-below-main=no --undef-value-errors=yes --leak-resolution=high --show-reachable=yes --error-limit=no --xml=yes --suppressions=$SUPPRESSION_FILES_DIR/suppression_stdlib.supp --suppressions=$SUPPRESSION_FILES_DIR/suppression_cg.supp --suppressions=$SUPPRESSION_FILES_DIR/suppression_glut.supp --suppressions=$SUPPRESSION_FILES_DIR/suppression_xlib.supp --suppressions=$SUPPRESSION_FILES_DIR/suppression_glibc.supp --suppressions=$SUPPRESSION_FILES_DIR/suppression_glib.supp --suppressions=$SUPPRESSION_FILES_DIR/suppression_qt.supp --suppressions=$SUPPRESSION_FILES_DIR/suppression_sdl.supp --suppressions=$SUPPRESSION_FILES_DIR/suppression_magick.supp --suppressions=$SUPPRESSION_FILES_DIR/suppression_sqlite.supp --suppressions=$SUPPRESSION_FILES_DIR/suppression_ld.supp --suppressions=$SUPPRESSION_FILES_DIR/suppression_selinux.supp --suppressions=$SUPPRESSION_FILES_DIR/suppression_opengl.supp"
Run Code Online (Sandbox Code Playgroud)

我试着这样做:

MEMCHECK_OPTIONS="--tool=memcheck -q -v --num-callers=24 --leak-check=full --show-below-main=no --undef-value-errors=yes --leak-resolution=high --show-reachable=yes --error-limit=no --xml=yes --suppressions=$SUPPRESSION_FILES_DIR/*.supp"
Run Code Online (Sandbox Code Playgroud)

但 valgrind 需要一个文件名(不接受星号)。

由于我在 bash 脚本中执行此操作,有人可以告诉我形成该行的最简单方法是什么吗?

我想过列出抑制目录中的所有文件,然后遍历该列表,并添加--suppressions=前缀。

编辑

我忘了问。这是我到目前为止:

ALL_SUPPRESION_FILES=`ls $SUPPRESSION_FILES_DIR/*.supp`
Run Code Online (Sandbox Code Playgroud)

但我找不到如何将其传输到数组中。有人可以帮忙吗?

linux bash valgrind

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

C++文件容器(例如zip),方便访问

我有很多小文件需要与我构建的应用程序一起提供,我想将这些文件放入存档,以便更容易地复制和重新分发.我也非常喜欢将它们放在一个地方的想法所以我需要比较一个文件的md5,以防出现问题.

我正在考虑一个类,它可以加载存档并返回存档中的文件列表,并在需要访问时将文件加载到内存中.

我已经在互联网上搜索了实现我想要的不同方法,并了解了zlib和lzma sdk.两者都没有真正吸引我,因为我没有真正发现便携式zlib是如何,我不喜欢lzma sdk,因为它只是很多,我不想因为这个问题而炸毁应用程序.zlib的另一个缺点是我没有C/C++经验(我是C++的新手)来完成手册中解释的所有内容.

我还要补充一点,这是一个时间紧迫的问题.我有一段时间关于以某种方式实现像tar这样的简单格式,我可以轻松访问我的应用程序中的文件,但我还没有找到时间去做.

所以我正在寻找的是一个允许我访问档案中文件的库.如果有人能指出我正确的方向,我会很高兴.

谢谢,罗宾.

编辑:我需要在linux和windows下访问存档.对不起,我在开始时没有提到.

c++ zip archive

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

使用带有别名的doctrine/Errors的子查询

我正在尝试使用orWhere子句中的子查询进行简单查询(使用Doctrine).

与往常一样,Doctrine尝试重命名每个别名并完全破坏查询...

这是一个例子:

$q = Doctrine_Query::create()
    ->from('Actualite a')
    ->where('a.categorie_id =?', $id)
    ->orWhere('a.categorie_id IN (select id from cat.categorie as cat where cat.categorie_id =?)', $id)
    ->execute();
Run Code Online (Sandbox Code Playgroud)

哪个在MySQL中会产生类似的东西:

SELECT * 
FROM actualite a 
WHERE a.categorie_id = 1 OR a.categorie_id IN (SELECT cat.id FROM categorie cat WHERE cat.categorie_id = 1);
Run Code Online (Sandbox Code Playgroud)

关于它的一切都是正确的,但是再一次,Doctrine摧毁它:找不到阶级猫

每次我尝试使用Doctrine做一些复杂的事情时,我都会出现别名错误.有关如何解决此问题的任何建议或想法?

谢谢!

php mysql orm doctrine

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

强制URL中的换行符

我的博客上有Twitter提要.它工作得很好,但推文中的长网址存在问题.长URL通过延伸超过容器的宽度来打破布局.

我的代码看起来像这样:

<ul id="twitter_update_list">
    <!-- twitter feed -->
</ul>

<script type="text/javascript" src="http://twitter.com/javascripts/blogger.js"></script>
<script type="text/javascript" src="http://twitter.com/statuses/user_timeline/USERNAME.json?callback=twitterCallback2&amp;count=3"></script>
Run Code Online (Sandbox Code Playgroud)

blogger.js脚本包含回调函数,该函数从Twitter请求获取数据并将<li>元素填充到预定义的<ul>.

我正在使用以下CSS自动断行(对于支持它的浏览器):

#twitter_update_list li span a {
    word-wrap: break-word;
}
Run Code Online (Sandbox Code Playgroud)

我知道<wbr>标签,并试图使用一个看起来像这样的jquery函数:

$(document).ready(function(){
    $("#twitter_update_list li span a").each(function(){
        // a replaceAll string prototype was used here to replace "/" with "<wbr>/"
    });
});
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用该代码片段时,它会导致IE停止响应,这并不好.

我正在寻找一个我可以插入的代码块来解决换行问题(通过向长URL添加换行符).Firefox和Chrome工作正常,但IE7和IE8需要更多功能.(我不关心IE6.)

html css

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

在python中为字典创建默认值

让我们有一个方法来缓存它计算的结果.

"如果"接近:

def calculate1(input_values):
    if input_values not in calculate1.cache.keys():
        # do some calculation
        result = input_values
        calculate1.cache[input_values] = result
    return calculate1.cache[input_values]
calculate1.cache = {}
Run Code Online (Sandbox Code Playgroud)

"除了"方法:

def calculate2(input_values):
    try:
       return calculate2.cache[input_values]
    except AttributeError:
       calculate2.cache = {}
    except KeyError:
       pass
    # do some calculation
    result = input_values
    calculate2.cache[input_values] = result
    return result
Run Code Online (Sandbox Code Playgroud)

"获得/拥有"的方法:

def calculate3(input_values):

    if not hasattr(calculate3, cache):
        calculate3.cache = {}

    result = calculate3.cache.get(input_values)
    if not result:
        # do some calculation
        result = input_values
        calculate3.cache[input_values] = result
    return …
Run Code Online (Sandbox Code Playgroud)

python performance coding-style

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

Excel文件中的古怪SELECT通过OleDbDataAdapter方法(C#)

我有一个这种形式的Excel文件:

Column 1    Column 2    Column 3  
 data1        data2    
 data1        data2  
 data1        data2  
 data1        data2  
 data1        data2       data3  
Run Code Online (Sandbox Code Playgroud)

也就是说,除了最后一行之外,整个第3列都是空的.我通过OleDbDataAdapter访问Excel文件,返回一个DataTable:这是代码.

query = "SELECT * FROM [" + query + "]";
objDT = new DataTable();
objCmdSQL = this.GetCommand();
objCmdSQL.CommandText = query;
objSQLDad = new OleDbDataAdapter(objCmdSQL);
objSQLDad.Fill(objDT);
return objDT;
Run Code Online (Sandbox Code Playgroud)

关键是,在这种情况下,我的代码返回一个只有第1列和第2列的DataTable.
我的猜测是JET引擎试图通过每列中第一个单元格的类型来推断列类型; 作为第一个值null,整个列被忽略.
我试图填写零,这段代码实际上是返回所有三列; 这显然是最不可取的解决方案,因为我必须处理大量的小文件.
反转选择范围(从"A1:C5"到"C5:A1")也不起作用.我正在寻找更优雅的东西.
我已经发现了一些讨论类型不匹配的帖子(int列中的varchar单元格,反之亦然),但实际上还没有发现与此相关的任何内容.
谢谢阅读!

编辑

奇怪的行为再次.我必须处理大多数Excel 2003 .xls文件,但由于这个问题已得到解答,我认为我可以针对Excel 2007 .xslx文件测试我的代码.连接字符串如下:

string strConn = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + _fileName.Trim() + @";Extended Properties=""Excel 12.0;HDR=No;IMEX=1;""";
Run Code Online (Sandbox Code Playgroud)

我得到"外部表不是预期的格式"异常,当ACE/JET和正在打开的文件之间存在版本不匹配时,我认为这是标准异常.

字符串

Provider=Microsoft.ACE.OLEDB.12.0 
Run Code Online (Sandbox Code Playgroud)

意味着我正在使用最新版本的OLEDB,我快速浏览了一下,这个版本用于需要连接到.xlsx文件的任何地方.
我尝试过只有一个香草提供商(只有Excel 12.0,没有IMEX和HDR),但我得到了同样的例外.
我在.NET 2.0.50727 …

c# excel null oledbcommand oledbdataadapter

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