小编Mat*_*ari的帖子

使用多个@Id作为复合主键时出现Eclipse错误

在我的Model项目中(它只有持久类,也就是java bean)我有一个具有复合主键的类.为了映射这个,我在班上使用了两个@Id.在休眠4之前它是不可能的,但现在它是好的.所以,问题是,eclipse在这个类中显示错误,说它应该以旧方式完成.像这样:

错误

正如我所说,这是一个错误的错误,因为如果我执行它,代码工作正常.我在eclipse上安装了JBoss Tools插件,但我不知道错误是由它还是由eclipse引起的.

有谁知道如何解决这个问题?并不是说它阻止我执行应用程序,但总是显示错误是一件烦人的事情.

---编辑---

所以,现在我知道问题出在JBoss Tools上,因为我停用了项目上的JPA方面并且错误已经停止.但我希望我可以使用JBoss Tools提供的功能,所以......还没有解决方案.

java hibernate jpa jboss-tools

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

为什么Java 8中的lambda表达式要求在其中使用的变量使用"final"修饰符,但在使用方法引用时却不需要?

考虑以下课程:

class Foo<T> {

    void handle(T t) {
        System.out.println("handling " + t);
    }

    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);

        Foo<Integer> f = new Foo<>();

        list.forEach(f::handle);             // compiles fine
        //list.forEach(obj -> f.handle(obj));// compilation error

        f = new Foo<>(); // reassign f

    }
}
Run Code Online (Sandbox Code Playgroud)

为什么我会收到编译错误obj -> f.handle(obj),但不是f::handle

java lambda java-8

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

在JavaFX上,如何隐藏舞台而不处理它并关闭应用程序?

我需要创建一个向用户显示主要阶段的应用程序,如果用户关闭了舞台,而不是完成应用程序,它应该隐藏舞台供以后使用.在swing上我们可以将setVisible(false)调用到JFrame或JDialog,但是如何在JavaFX上执行它?

java javafx

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

Hibernate 为 @ManyToOne JPA 注释属性创建 N+1 个查询

我有这些课程:

@Entity
public class Invoice implements Serializable {
    @Id
    @Basic(optional = false)
    private Integer number;

    private BigDecimal value;

    //Getters and setters
}

@Entity
public class InvoiceItem implements Serializable {
    @EmbeddedId
    protected InvoiceItemPK invoiceItemPk;

    @ManyToOne
    @JoinColumn(name = "invoice_number", insertable = false, updatable = false)
    private Invoice invoice;

    //Getters and setters
}
Run Code Online (Sandbox Code Playgroud)

当我运行此查询时:

session.createQuery("select i from InvoiceItem i").list();
Run Code Online (Sandbox Code Playgroud)

它执行一个查询以从 InvoiceItem 中选择记录,如果我有 10000 个发票项目,它会生成 10000 个附加查询以从每个 InvoiceItem 中选择发票。

我认为如果可以在单个 sql 中获取所有记录会好得多。实际上,我觉得奇怪为什么它不是默认行为。

那么,我该怎么做呢?

java hibernate jpa many-to-one select-n-plus-1

7
推荐指数
2
解决办法
5381
查看次数

如何在JasperReport中将打印顺序设置为"水平"时自动拉伸细节带?

我有一份水平打印的主报告.它有5列.在每列我想要一个子报告.所以我创造了这个:

主要报告

子报告就是这样的:

子报表

问题是,当我运行时,我得到以下异常:

net.sf.jasperreports.engine.JRRuntimeException: Subreport overflowed on a band that does not support overflow.
Run Code Online (Sandbox Code Playgroud)

看起来像jasper报告在其中有子报告并且打印顺序设置为水平时不能垂直拉伸细节带.

我该怎么做才能避免这个错误,实现我想要的?

java jasper-reports

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

在没有 jquery 的情况下模拟按键

我有一个输入字段,用户可以在其中写东西。我希望,如果用户按下键“1”,模拟另一个键按下“F”。因此,如果用户键入字符 1,则在该字段中将显示 1f。我该怎么做,而不使用 jQuery?

html javascript

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

Hibernate + PostgreSQL - 连接状态"Idle in transaction"

我有一个使用Hibernate在Tomcat上运行的JSF应用程序.我做了一个小测试,暴露了te问题 - 创建了一个servlet,它唯一做的就是:

EntityManager em=null;
try {
    em = ConnectDb.getEntityManager();
    em.createQuery("from Frete").getResultList();
} catch (Exception e) {
    e.printStackTrace();
} finally {
    try{em.close();}catch(Exception ex){}
}
Run Code Online (Sandbox Code Playgroud)

如果我在pg_admin中执行以下sql,我得到一条记录,在"查询"列中我看到由hibernate执行的sql,在"state"列中它显示"在事务中空闲".

但问题是没有启动任何事务,我唯一做的就是创建一个查询.并且EntityManager已关闭 - 关闭它时没有抛出异常.

也许这是persistence.xml的配置,但我不知道.这是我的persistence.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
  <persistence-unit name="GestaoPU" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <properties>
      <property name="hibernate.show_sql" value="true"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
      <property name="hibernate.connection.autocommit" value="false"/>
      <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost/AtualyGestao"/>
      <property name="javax.persistence.jdbc.password" value="atg4747"/>
      <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
      <property name="javax.persistence.jdbc.user" value="AtualyGestao"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      <property name="hibernate.format_sql" value="false"/>
      <property name="hibernate.connection.encoding" value="ISO-8859-1"/>
    </properties>
  </persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)

postgresql hibernate jpa

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

从JavaFX开始 - JavaFX版本和"开发模式"问题

我打算开始开发桌面应用程序,但直到现在,对我来说,desktop = swing.我做了一些关于它的研究,发现自己有些问题:

  1. 我发现有很多JavaFX版本:

    • 人们说JavaFX 1.0已经陈旧过时了;
    • JavaFX 2.X非常好;
    • 现在JavaFX 8(这是正确的吗?);

    但即使最新的NetBeans IDE版本(8.0)与JDK 8(1.8.0),当我创建一个JavaFX应用程序时,它开始使用JavaFX 2.2 - JavaFX 8真的是一个新的JavaFX版本,或者人们之所以说它只是因为它们使用JavaFX 2.X与JDK 8?

  2. 关于版本的另一个问题,在JavaFX的X版本中开发的应用程序是否与更高版本兼容?就像一个swing应用程序,如果你用Java 5开发了一个应用程序,它甚至可以在Java 8上运行.

  3. 关于开发模式,更具体地说是关于布局创建,我注意到有两种方法可以创建布局:只需用Java编写代码,然后用Java类作为控制器创建XML文件(FXML)(更多MVC方法)就像一个JSF应用程序.我应该选择哪一个?每个人的利弊是什么?

java swing javafx javafx-2 javafx-8

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

JavaFX组合框上的"No select item"?

在ComboBox中放置值为null的项的正确方法是什么?我尝试使用myComboBox.getItems().add(null);,但它确实有效,但只要用户在组合框中选择此值,控制台就会抛出异常:

Exception in thread "JavaFX Application Thread" java.lang.IndexOutOfBoundsException
    at com.sun.javafx.scene.control.ReadOnlyUnbackedObservableList.subList(ReadOnlyUnbackedObservableList.java:136)
Run Code Online (Sandbox Code Playgroud)

所以我想也许这不是正确的做法.有线索吗?

java javafx javafx-2 javafx-8

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

在SQL中查找序列的间隙而不创建其他表

我有一个表invoices有一个字段invoice_number.这是我执行时发生的事情select invoice_number from invoice:

invoice_number
--------------
1
2
3
5
6
10
11
Run Code Online (Sandbox Code Playgroud)

我想要一个SQL,它给我以下结果:

gap_start | gap_end
4         | 4
7         | 9
Run Code Online (Sandbox Code Playgroud)

如何编写SQL来执行此类查询?我正在使用PostgreSQL.

sql postgresql gaps-and-islands

6
推荐指数
2
解决办法
1773
查看次数