我听说过很多关于makefile的内容以及它们如何简化编译过程.我正在使用VS2008.有人可以建议一些在线参考或书籍,我可以找到更多关于如何处理它们?
我使用以下通用代码来保存实体.
using (ITransaction tx = session.BeginTransaction())
{
try
{
entity.DateModified = DateTime.Now;
session.SaveOrUpdate(entity);
session.Flush();
tx.Commit();
return entity;
}
catch (Exception)
{
tx.Rollback();
throw;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我观看SQL事件探查器时,我没有看到任何BEGIN TRANSACTION被发送到SQL Server.这是正常的,预期的吗?
以下代码
public class GenericsTest2 {
public static void main(String[] args) throws Exception {
Integer i = readObject(args[0]);
System.out.println(i);
}
public static <T> T readObject(String file) throws Exception {
return readObject(new ObjectInputStream(new FileInputStream(file)));
// closing the stream in finally removed to get a small example
}
@SuppressWarnings("unchecked")
public static <T> T readObject(ObjectInputStream stream) throws Exception {
return (T)stream.readObject();
}
}
Run Code Online (Sandbox Code Playgroud)
在eclipse中编译,但不在javac中编译(T的类型参数无法确定;对于具有上限T,java.lang.Object的类型变量T,不存在唯一的最大实例).
当我将readObject(String文件)更改为
@SuppressWarnings("unchecked")
public static <T> T readObject(String file) throws Exception {
return (T)readObject(new ObjectInputStream(new FileInputStream(file)));
}
Run Code Online (Sandbox Code Playgroud)
它在eclipse和javac中编译.谁是正确的,eclipse编译器还是javac?
有人可以给我一个Hibernate中单向@OneToOne主键映射的例子吗?我尝试了很多种组合,到目前为止,我得到的最好的东西是:
@Entity
@Table(name = "paper_cheque_stop_metadata")
@org.hibernate.annotations.Entity(mutable = false)
public class PaperChequeStopMetadata implements Serializable, SecurityEventAware {
private static final long serialVersionUID = 1L;
@Id
@JoinColumn(name = "paper_cheque_id")
@OneToOne(cascade = {}, fetch = FetchType.EAGER, optional = false, targetEntity = PaperCheque.class)
private PaperCheque paperCheque;
}
Run Code Online (Sandbox Code Playgroud)
每当Hibernate尝试自动生成上述映射的模式时,它会尝试将主键创建为blob,而不是long,即PaperCheque的id类型.有人能帮帮我吗 ?如果我无法得到一个确切的解决方案,那么接近就会有所作为,但我会感激任何回应.
执行摘要:当线程中抛出断言错误时,单元测试不会消失.这是有道理的,因为不应该允许一个线程崩溃另一个线程.问题是我如何1)在第一个辅助线程崩溃时使整个测试失败,或者2)循环并确定每个线程完成后的状态(参见下面的代码).执行后者的一种方法是通过具有每线程状态变量,例如"boolean [] status"并且具有"status [i] == false"意味着线程失败(这可以被扩展以捕获更多信息).但是,这不是我想要的:我希望它在抛出断言错误时就像任何其他单元测试一样失败.这甚至可能吗?这是可取的吗?
我感到无聊,我决定在我的单元测试中产生一堆线程,然后让它们调用一个服务方法,只是为了它.代码看起来大致如下:
Thread[] threads = new Thread[MAX_THREADS];
for( int i = 0; i < threads.length; i++ ) {
threads[i] = new Thread( new Runnable() {
private final int ID = threadIdSequenceNumber++;
public void run() {
try {
resultRefs[ID] = runTest( Integer.toString( ID ) ); // returns an object
}
catch( Throwable t ) {
// this code is EVIL - it catches even
// Errors - don't copy it - more on this below …Run Code Online (Sandbox Code Playgroud) 我是Python的新手,我遇到了一个问题,我无法用谷歌来解决问题.我使用wxPython和ObjectiveListView构建了一个GUI.在它的中心,GUI有一个列表控件,以X行显示数据(数据由用户加载)和五列.
当用户从列表控件中选择多个条目(按下CTRL或单击时移位)时,ObjectiveListView模块会给我一个字典列表,这些字典包含列表控件行中的数据.这正是我想要的,好!
返回的列表如下所示:
print MyList
[{'id':1023, 'type':'Purchase', 'date':'23.8.2008', 'sum':'-21,90', 'target':'Apple Store'}, {'id':1024, 'type':'Purchase', 'date':'24.8.2008', 'sum':'-21,90', 'target':'Apple Store'}, {'id':23, 'type':'Purchase', 'date':'2.8.2008', 'sum':'-21,90', 'target':'Apple Store'}]
Run Code Online (Sandbox Code Playgroud)
所有词典都具有相同的键,但值会发生变化.'id'值是唯一的.这里出现了问题.我想获取用户选择的所有项目的公共值.在上面的列表中,它们将是'sum':' - 21,90'和'target':'Apple Store'.
我不知道如何正确比较列表中的dicts.一个大问题是我事先不知道列表包含多少个词,因为它是由用户决定的.
我有一个模糊的想法,列表推导将是要走的路,但我只知道如何将两个列表与列表推导进行比较,而不是n列表.任何帮助,将不胜感激.
我认为将它们声明为静态是最佳实践,因为它使它们在模块外部不可见.
你对此有何看法?
我用C编写了一个程序来解析大型XML文件,然后使用insert语句创建文件.其他一些进程会将文件摄取到MySQL数据库中.此数据将用作索引服务,以便用户可以轻松找到文档.
我选择了InnoDB来实现行级锁定.C程序将在给定的调用中生成500到500万个插入语句.
将所有这些数据尽快送入数据库的最佳方法是什么?另一件需要注意的是,DB位于单独的服务器上.是否值得将文件移动到该服务器以加快插入?
编辑:此表不会真正更新,但行将被删除.
我有一堆通用接口和类
public interface IElement {
// omited
}
class Element implements IElement {
// omited
}
public interface IElementList<E extends IElement> extends Iterable {
public Iterator<E> iterator();
}
class ElementList implements IElementList<Element> {
public Iterator<Element> iterator() {
// omited
}
}
public interface IElementListGroup<E extends IElementList<? extends IElement>> {
public E getChosenElementList();
}
class ElementListGroup implements IElementListGroup<ElementList> {
public ElementList getChosenElementList() {
// omited
}
}
Run Code Online (Sandbox Code Playgroud)
然后是一个简单的代码
ElementListGroup group;
for(Element e : group.getChosenElementList())
{
// omited
}
Run Code Online (Sandbox Code Playgroud)
而对于关键字throwe的行"无法从元素类型Object转换为Element"编译器错误.
提前致谢.
我有一个看起来像这样的类:
public class Test {
private static final Object someObject = new Object();
public void doSomething()
{
synchronized (someObject) {
System.out.println(someObject.toString());
}
}
}
Run Code Online (Sandbox Code Playgroud)
我可以考虑同步对象,还是有问题,因为它是静态成员?
编辑:请注意,不同的线程可能正在访问doSomething(),并且在这种情况下必须以线程安全的方式访问该对象.
java ×5
c++ ×2
static ×2
annotations ×1
c ×1
c# ×1
data-mining ×1
eclipse ×1
function ×1
generics ×1
hibernate ×1
insert ×1
junit ×1
locking ×1
makefile ×1
mysql ×1
nhibernate ×1
one-to-one ×1
performance ×1
python ×1
transactions ×1
unit-testing ×1