这是正确的(更好的)对象关系映射吗?

我真的很难在我的项目中使用Hibernate。 我在这里描述的一些问题: Hibernate:得到太多行我开始想知道我的代码是否正确。 我正在开发一个庞大的项目,我不得不自己定义带注释的映射类。 但是当问题开始出现时,我决定重新创建与项目分开的数据库部分,并尝试在IDE中生成实体。 我有两个表: My和Option 。 My有主键:列qwerty和property 。 Property是Option表中的外键。 当然, Option将property作为主键。 在我的解决方案中,我创建了具有两个属性的@Embeddable MyPK类: String qwerty和String property 。 在我的My实体中,我当然有@EmbeddedId MyPK和property (与MyPK中的列名相同),但这是Option对象,而不是MyPK中的MyPK 。 @ManyToOne @JoinColumn(name = “property”, nullable = false, insertable = false, updatable = false) protected Option option; 这是由Intellij Idea中的Hibernate Tools生成的实体。 没有EmbeddedId ,但有@IdClass 。 我认为@IdClass仅适用于基本类型。 但我有一个对象作为我的主键的一部分。 但是这里也有OptionEntity对象。 保持一列的基本类型和对象类型是否正确? @javax.persistence.IdClass(test.go.MyEntityPK.class) @javax.persistence.Table(name = “MY”, schema = […]

创建ActionBar选项卡也调用其selectTab函数

我在父类中有一个函数createTabs ,用于创建应用程序栏选项卡并将tabListener附加到它们,并在tabListener的onTabSelected检查选定的选项卡并通过intent调用其活动。 现在在所有活动类中,我在onCreate方法中调用此函数,以实例化该活动的选项卡。 现在问题出现在createTabs当我在语句中添加选项卡时: actionBar.addTab(actionBar.newTab().setText(“Event Feed”) .setIcon(R.drawable.ic_action_alarms) .setTabListener(tabListener),0,false); 它自动调用onTabSelected侦听器方法,当将控件传递给我反对在onCreate方法中调用此函数的activity类时,为了实例化选项卡,这会在无限循环中发送我的应用程序。 我的问题是为什么在.addTab之后调用.addTab ? 这个无限循环的解决方案是什么? 请帮忙: 父活动类中的createTabs方法:public void createTabs(ActionBar actionBar){ try { // final ActionBar actionBar = getActionBar(); actionBar.setDisplayShowTitleEnabled(false); actionBar.setDisplayUseLogoEnabled(true); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); ActionBar.TabListener tabListener = new ActionBar.TabListener() { @Override public void onTabUnselected(Tab arg0, FragmentTransaction arg1) { // TODO Auto-generated method stub } @Override public void onTabSelected(Tab tab, FragmentTransaction arg1) […]

网络不可用时防止应用崩溃

我有一个应用程序,它具有从服务启动的前台通知。 该服务每秒调用一个用作GPS连接的类。 GPS类使用NETWORK_PROVIDER和GPS_PROVIDER 。 到目前为止,所有工作都是正确的,除了今天发生的事情。 在某些时候,Android系统显示的消息说“除非你连接到wifi网络或移动网络,否则你将无法访问电子邮件和互联网”。 我不太清楚这条消息,但我有两个按钮:“取消”和“确定”。 从口袋里拿出手机时,我可能会点击某些东西。 在此消息之上是另一条消息,说我的应用程序不幸崩溃了。 所以事件的顺序似乎是这样的:网络禁用(?),应用程序崩溃。 我认为我需要以某种方式处理网络错误,但我现在无能为力,因为我无法从错误中获得太多信息。 有什么想法吗? 谢谢

如何通过代理进行所有网络流量?

我有一个应用程序向远程服务器发出http请求。 我使用以下代码执行此操作: HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(“myURL”); try { ArrayList postVariables = new ArrayList(2); postVariables.add(new BasicNameValuePair(“key”,”value”)); httpPost.setEntity(new UrlEncodedFormEntity(postVariables)); HttpResponse response = httpClient.execute(httpPost); String responseString = EntityUtils.toString(response.getEntity()); if (responseString.contains(“\”success\”:true”)){ //this means the request succeeded } else { //failed } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); […]

JavaFX无限时间轴中的内存泄漏

我正在使用JavaFX设计秒表。 代码运行良好。 除了巨大的累积内存泄漏随着时间的推移。 每当我增加Timeline的framerate时,泄漏就会增加。 我目前使用的是4GB内存的Ubuntu 16.04,泄漏速度为300MB / min,速度为30fps。 那是5MBps。 我可以理解,这可能是由于重复绘制Scene而发生的,但为什么会累积? JVM不应该照顾这个吗? Main.java: package UI; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.ButtonBar; import javafx.scene.layout.BorderPane; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) throws Exception{ primaryStage.setTitle(“StopWatch”); primaryStage.setScene(new Scene(getPane(), 400, 400)); primaryStage.show(); } private BorderPane getPane(){ BorderPane pane = new BorderPane(); ClockUI […]

你如何编程’相对导入’jar文件目录?

我正在使用Drools Planner,它在目录binaries文件中附带了21个Jar文件。 例如, drools-core-5.3.0.Final.jar将提供org.drools.someClasses 。 包含的示例通过运行all-inclusive命令在命令行中运行它: mainClasspath= for i in binaries/*.jar; do mainClasspath=${mainClasspath}:$i; done mainClass=org.drools.planner.examples.app.DroolsPlannerExamplesApp $JAVA_HOME/bin/java -Xms256m -Xmx512m -server -cp ${mainClasspath} ${mainClass} $* 我正在命令行开发程序。 但最终的应用程序(只是添加了一个HTTP接口)在JSP容器中运行,而不是从命令行运行。 因此,我需要以编程方式将 jar文件导入到我的项目中。 问题 :如何以编程方式导入jar文件? 我宁愿在环境变量中指定binaries路径吗? 更新 我这样做是为了告诉Java全局,可以在同一目录中找到额外的类,意思是. 和/home/jesvin/dev/drools/binaries 。 请注意:是Linux中的分隔符。 declare -x CLASSPATH=’.:/home/jesvin/dev/drools/binaries’ 根据Miserable Variable的答案,您可以按执行实例执行此操作。 最后,在Tomcat部署中,我给它一个HTTP接口,根据havexz的答案部署它。

如何在字符串中打印第一个字符的二进制表示

我想检索文件中数据的二进制值。 所以我写了以下代码: while ((fileData = br.readLine()) != null) { byte b[] = fileData.getBytes(“UTF-8”); BigInteger bi = new BigInteger(b); String s = bi.toString(2); System.out.println(“Original message in binary: ” + s); System.out.println(“Original message length: ” + s.length()); } 输出: abca (this is the data in a text file) Original message in binary: 1100001011000100110001101100001 Original message length: 31 […]

如何从(SQLite)数据库加载的JTable中插入,更新和删除项目

我目前有2个类,一个显示GUI,一个是从数据库中获取项目。 我的代码如下: 此代码用于在GUI中显示JTable public void table() { if(SOMR.tableCall() == true) { this.columnNames = SOMR.getCol(); this.data = SOMR.getData(); JTable table = new JTable(data, columnNames) { public Class getColumnClass(int column) { for (int row = 0; row < getRowCount(); row++) { Object o = getValueAt(row, column); if (o != null) { return o.getClass(); } } return Object.class; […]

MutableBigInteger的性能

我尝试使用BigInteger计算具有大精度(高达10000)的特定输入下的整数平方根的数字之和。 public class SquareRootHackerRankJarvis { static BigInteger limit; static BigInteger a; static BigInteger b; private static BigInteger squareroot(int n, BigInteger ten, BigInteger hundred, BigInteger five) { a = BigInteger.valueOf(n * 5); b = BigInteger.valueOf(5); while (b.compareTo(limit) == -1) { if (a.compareTo(b) != -1) { a = a.subtract(b); b = b.add(ten); } else { a = […]

Spring IoC – dependency injection – > NullPointerException

我有这个结构: 接口IProjectService,由ProjectServiceImpl实现。 现在我有一个控制器,我想在其中使用dependency injection: @Controller @RequestMapping(value=”/testFolder”) public class MyDIController { … private IProjectService projectServiceImpl; public void setProjectServiceImpl(IProjectService projectServiceImpl) { this.projectServiceImpl= projectServiceImpl; } … @RequestMapping(value=”/project”, method=RequestMethod.GET) public @ResponseBody Project getProject() { Project project = this.projectServiceImpl.getProject(12); // line 37! (id 12 is a test case, it does exist, here is he error: this.projectServiceImpl = null) return project; […]