在视图模式中打开会话

鉴于我选择的JPA(Hibernate实现),Spring和,我问这个问题。 我一直在考虑我的实体层中的关系 – 例如我有一个订单实体,它有许多订单行。 我已经设置了我的应用程序,因此它急切地为每个订单加载订单行。 如果我将获取策略设置为false,你认为这是一种懒惰的方法来解决我会遇到的延迟初始化问题吗? 我看到它的方式,在检索实体及其关联时,我有以下备选方案: 使用Open Session In View模式为每个请求创建会话,并在返回响应之前提交事务。 实现DTO(数据传输对象)层,以便我执行的每个DAO查询都返回正确初始化的DTO以用于我的目的。 我真的不太喜欢这个选项,因为根据我的经验,我发现它创建了许多样板复制代码并且变得很难维护。 不要映射JPA中的任何关联,以便我执行的每个查询都只返回我感兴趣的实体 – 这可能要求我无论如何都要使用DTO,这将是一个难以维护的问题,我认为无法实现ORM的目的首先。 急切地获取所有(或大多数关联) – 在上面的示例中,总是在检索订单时获取所有订单行。 所以我的问题是,你何时以及在什么情况下会使用哪些选项? 你总是坚持一种做法吗? 我会问一位同事,但我认为,如果我甚至提到“开放式会议”这一术语,我会受到一片空白的欢迎:(我真正想要的是来自资深或经验丰富的开发人员的一些建议。 多谢你们!

奇怪的Java行为。 三元运算符

为什么这段代码有效? Float testFloat = null; Float f = true ? null : 0f; 为什么会抛出exception呢? Float testFloat = null; Float f = true ? testFloat : 0f; 但最奇怪的是,此代码也成功运行,没有任何例外: Float testFloat = null; Float f = testFloat; 似乎Java的三元运算符改变了行为。 谁能解释为什么会这样,拜托?

使用JAXB从两个XML文件交叉引用XmlID

我正在尝试将两个不同的XML文件编组/解组到POJOS。 第一个XML文件如下所示: –Network.xml– ——— 使用@XmlID和@XmlIDREF注释,我可以成功填充Arc类以指向它引用的正确节点。 但是,我还必须解析这个XML: –NetworkInputs.xml– —— 目前,我的程序成功解组了Network对象,但是Network和NetworkInput之间没有连接,允许JAXB“看到”Network中存在的节点。 我希望我的Flow对象指向Network类中的正确Node。 我基本上想要这样做: http : //old.nabble.com/JAXB-Unmarshalling-and-XmlIDREF-using-different-stores-td14035248.html 我尝试实现这个: http : //weblogs.java.net/blog/kohsuke/archive/2005/08/pluggable_ididr.html它只是不起作用,因为我无法获取我填充的网络的节点数据静态上下文。 甚至可以做这样的事情吗?

hibernate列名称问题

@Column(name=”DateOfBirth”) private Date dateOfBirth; 我特别需要上面的代码来创建一个名为“DateOfBirth”的列,而不是Hibernate给我一个名为date_of_birth的列。 我怎么能改变这个? 有web.xml属性吗? 我遇到了DefaultNamingStrategy和ImprovedNamingStrategy,但不知道如何指定其中一个。

Eclipse / Idea忽略了Maven Java版本配置

我有: org.apache.maven.plugins maven-compiler-plugin 3.1 1.6 1.6 但我宣布:没有问题: public enum DirectoryWatchService { INSTANCE; private java.util.Optional test; private java.nio.file.Files files; } Eclipse不打扰。 IntelliJ既不是。 即使是Maven也不会打扰。 我甚至可以做一个mvn清洁包 。 在没有任何警告的情况下构建健康的东西。

如何在Java程序中使用Sqoop?

我知道如何通过命令行使用sqoop。 但是不知道如何使用java程序调用sqoop命令。 谁能给一些代码视图?

Java RestFull WebService:使用Jersey 2.3.1库的JAX-RS实现

我试图在JBoss jboss-eap-6.1 AS上运行一个简单的“Hallo World”应用程序Jersey 2.3.1 REST服务。 在web.xml中我禁用了restEasy库。 在部署期间,我收到错误: JBWEB000289:Servlet com.sun.jersey.samples.helloworld.resources.MyApplication引发了load()exception:java.lang.NoSuchMethodError:javax.ws.rs.core.Application.getProperties()Ljava / util / Map; 在POM我把这些依赖: org.glassfish.jersey.core jersey-server 2.3.1 org.glassfish.jersey.containers jersey-container-servlet-core 2.3.1 javax.ws.rs javax.ws.rs-api 2.0 这是我的web.xml,其中restEasy标签禁用: com.sun.jersey.samples.helloworld.resources.MyApplication org.glassfish.jersey.servlet.ServletContainer javax.ws.rs.Application com.sun.jersey.samples.helloworld.resources.MyApplication 1 resteasy.scan false resteasy.scan.providers false resteasy.scan.resources false com.sun.jersey.samples.helloworld.resources.MyApplication /* 我的资源配置java类: package com.sun.jersey.samples.helloworld.resources; import org.glassfish.jersey.server.ResourceConfig; public class MyApplication extends ResourceConfig { public MyApplication() { packages(“com.sun.jersey.samples.helloworld.resources”); //super(HelloWorldResource.class); } […]

Java中两个图像之间的碰撞检测

我在写作的游戏中显示了两个角色,即玩家和敌人。 定义如下: public void player(Graphics g) { g.drawImage(plimg, x, y, this); } public void enemy(Graphics g) { g.drawImage(enemy, 200, 200, this); } 然后叫: player(g); enemy(g); 我可以用键盘移动播放器(),但在尝试检测两者之间的碰撞时我感到很茫然。 很多人都说使用矩形,但作为一个初学者,我看不出如何将它链接到我现有的代码中。 谁能为我提供一些建议?

使用大量行填充JTable

我想在运行时期间用很多行填充JTable(比方说10000)。 但我所有的尝试都非常糟糕且效率低下。 起点是addData方法,它获取表示行的对象列表。 我试图通过SwingWorker填充表格,但这仅适用于我的小数据。 另一种尝试是直接设置数据而不使用任何类型的线程,但这也非常慢,至少UI不像SwingWorker那样被阻止。 那你怎么做这个一般? 表应该逐行或逐行填充,但不能全部填充,垂直滚动条应同时滚动。 我的TableModel: public class MyTableModel extends AbstractTableModel { /** * */ private static final long serialVersionUID = 1L; String[] columnNames; public Map data = new LinkedHashMap(); public MyTableModel(String[] header) { columnNames = header; } public String getColumnName(int col) { return columnNames[col].toString(); } @Override public int getColumnCount() { return columnNames.length; […]

帮助java中的包 – 导入不起作用

我是一名C ++开发人员 – 不是java开发人员,但必须让这段代码工作…… 我有2个公共类,将被另一个产品使用。 我在每个java文件中使用了package指令。 package com.company.thing; class MyClass … 当我尝试编译使用我添加的测试应用程序时 import com.company.thing.*; javac编译器失败,出现com.company不存在的错误。 (即使我在与我刚刚制作包的类文件相同的目录中编译它) 我确信我正在做一些愚蠢和愚蠢的事情。 我已经阅读了http://java.sun.com/docs/books/tutorial/java/package/usepkgs.html页面并尝试设置目录结构,如/ com / company / thing等,但我要么完全搞砸了或者错过了别的东西。 编辑感谢您的建议 – 我之前尝试过类路径。 它没有帮助。 我试过编译 javac -classpath client.java 结果是: package com.company does not exist 我在\ com \ company \ product中有我要导入的代码(两个java文件)。 我编译好了。 (它们包含MyClass)我甚至为它们制作了一个jar文件。 我将jar文件复制到父目录。 然后我做了(在客户端java文件的父目录中) javac -cp *.java 结果是: cannot access MyClass bad […]