小编veo*_*ote的帖子

JPA枚举比较不等于失败

我正在使用JPA 2.1.2.

我想用where子句执行select查询.where语句应该比较(不等于)存储在数据库(字符串)中的枚举.

@Entity
@Table(name = "MY_ENTITY")
public class MyEntity implements Serializable {

    @Column(name = "REMINDER_STATE")
    @Enumerated(EnumType.STRING)
    private ReminderStage reminderStage;

    ...
}

class DaoImpl{
 ....

    @Override
    public List<MyEntity> findAll(ReminderStage stage) {
        return em.createQuery("SELECT c FROM MyEntity c  WHERE  c.reminderStage != :reminderStage", MyEntity.class)
                .setParameter("reminderStage", stage).getResultList();

    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我执行查询时,我得到以下异常:

...
[28.07.14 08:27:07:910 CEST] 0000004e SystemErr     R Caused by: <openjpa-2.1.2-SNAPSHOT-r422266:1530146 nonfatal user error> org.apache.openjpa.persistence.ArgumentException: An error occurred while parsing the query filter 'SELECT c FROM CertInfo c  WHERE  c.reminderStage != :reminderStage'. Error message: …
Run Code Online (Sandbox Code Playgroud)

java sql comparison enums jpa

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

Primeface数据表中的静态和动态列

我正在使用Primefaces 5.0来创建动态数据表.

我的DataObject有一些必需的字段和一个可选的"tupel"列表(键值对).可选列表的大小可能不同.因此,我需要一个动态机制来显示Primefaces.DataTable中的DataObject列表.

我的方法如下:

public class DataObject {
    private String staticval1;
    private String staticval2;

    private List<Tupel> optionalValues;


    // .. getter, setter, hashCode, toString.....
}

public class Tupel{
    private String id;
    private String value;
}

@ManagedBean
@ViewScoped
public class TableOverviewBean {
    private List<DataObject> data;

    @EJB
    private IMyDao myDao;

    @PostConstruct
    public void init() {
        data = myDao.findAll();
    }

    public List<DataObject> getData() {
        return data;
    }

    public void setData(List<DataObject> data) {
        this.data = data;
    }
}
Run Code Online (Sandbox Code Playgroud)
    <h:form>
        <p:dataTable value="#{tableOverviewBean.data}" var="data">
            <p:column headerText="static1">
                <h:outputText …
Run Code Online (Sandbox Code Playgroud)

datatable dynamic-columns primefaces jsf-2

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

PrimeFaces 3.4 Charts datatipFormat

今天我想尝试新的PrimeFaces版本3.4.RC1.对于图表,有一个名为datatipFormat的新属性.

我想只在折线图中显示值(y轴)作为datatip.像这样:

<p:lineChart value="#{...}" datatipFormat="y-value"/>
Run Code Online (Sandbox Code Playgroud)

我该怎么做只显示这个?我找不到一个带有模板String的例子.

最好的问候Veote

java charts primefaces

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

如何在使用新值更新验证失败后重置表单中的输入字段

我正在使用PrimeFaces 4.0的JSF 2.

我有一个带有一些输入和验证的表单.从对话框中选择实体时,某些字段可能会自动填充.在我提交整个表单(并验证)之前选择实体时,这很好用.但是当我在验证后选择实体时,组件的更新不起作用.

JSF页面:

<h:form id="form">
    <p:inputText id="id" value="#{bean.user.id}" required="true" 
        onclick="PF('usersDialog').show()" />
    <p:inputText id="name" value="#{bean.user.name}" required="true"
        onclick="PF('usersDialog').show()" />
    <p:commandButton value="submit" action="#{bean.submit}" update=":form" />
</h:form>

<p:dialog widgetVar="usersDialog">
    <h:form>
        <p:dataTable value="#{bean.users}" var="user">
            <p:column>
                <p:commandButton value="choose" onclick="PF('usersDialog').hide()"
                    process="@this" action="#{bean.select(user)}" update=":form" />
            </p:column>
            <p:column>
                <h:outputText value="#{user.name}" />
            </p:column>
        </p:dataTable>
    </h:form>
</p:dialog>
Run Code Online (Sandbox Code Playgroud)

我知道它的JSF生命周期,但我无法解决它.那么在从对话框中选择新实体时,如何在验证失败后更新表单?

提前致谢.

validation primefaces jsf-2

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

具有两个没有顺序的字段的唯一hashCode

我需要一个hashCodeJava实现,它忽略了我的类中字段的顺序Edge.Node首先可能是Node第二个,第二个可能是Node第一个.

这是我的方法取决于顺序:

public class Edge {
    private Node first, second;

    @Override
    public int hashCode() {
        int hash = 17;
        int hashMultiplikator = 79;
        hash = hashMultiplikator * hash
                + first.hashCode();
        hash = hashMultiplikator * hash
                + second.hashCode();
        return hash;
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法计算一个哈希值,这个哈希值对于以下边缘是相同但唯一的?

Node n1 = new Node("a");
Node n2 = new Node("b");
Edge ab = new Edge(n1,n2);
Edge ba = new Edge(n2,n1);
Run Code Online (Sandbox Code Playgroud)

ab.hashCode() == ba.hashCode()应该是true.

java hashcode

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

EJB 3.1 Binding does not work on Websphere Application Server

I want to call a local Stateless-EJB from on ejb project from another singleton-EJB in another ejb-project. Both EJB-Projects are in the same ear file. The Application Server is a WebSphere Application Server 8.0.0.1.

First EJB 3.1-Project (PersistenceEJB.jar):

Interface

@Local
public interface TaskInfoDao extends DaoTemplate<TaskInfo> {
    public int deleteAll();
}
Run Code Online (Sandbox Code Playgroud)

The Stateless Bean:

@Stateless
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public class TaskInfoDaoImpl implements TaskInfoDao {
    private static final long serialVersionUID = 1L;

    @PersistenceContext(unitName = "MyDatasource")
    private EntityManager em;

    @Override
    public int deleteAll() {
        Query …
Run Code Online (Sandbox Code Playgroud)

java java-ee ejb-3.1 websphere-8

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

SRVE0260E: 服务器无法使用为您的应用程序指定的错误页面来处理下面打印的原始异常

我正在尝试在部署在 IBM WebSphere Application Server 8.0.0.8 上的 JSF 应用程序中使用一些错误页面。它们在 中声明如下web.xml

<error-page>
    <error-code>403</error-code>
    <location>/error403.jsp</location>
</error-page>
<error-page>
    <exception-type>javax.faces.application.ViewExpiredException</exception-type>
    <location>/expired.xhtml</location>
</error-page>
<error-page>
    <error-code>500</error-code>
    <location>/error500.xhtml</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)

但是,它们似乎不起作用。例如,当我ViewExpiredException在重新启动应用程序后得到 a 时,我没有重定向到错误页面,但我SRVE0260E在服务器日志中收到以下错误:

Error Page Exception
SRVE0260E: The server cannot use the error page specified for your application to handle the Original Exception printed below.

Original Exception:
Error Message: javax.servlet.ServletException: /help.xhtmlNo saved view state could be found for the view identifier: /help.xhtml
Error Code: 500
Target Servlet: Faces Servlet
Error Stack:
javax.faces.application.ViewExpiredException: …
Run Code Online (Sandbox Code Playgroud)

websphere exception-handling custom-error-pages jsf-2

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

OpenJPA合并/持久化非常慢

我在带有MySQL 5.0 DB的WebSphere Application Server 8上使用OpenJPA 2.2.0.

我有一个对象列表,我想合并到数据库中.

就像是:

for (Object ob : list) {
            Long start = Calendar.getInstance().getTimeInMillis();
            em = factory.createEntityManager();
            em.getTransaction().begin();

            em.merge(ob);

            em.getTransaction().commit();
            em.close();
            Long end = Calendar.getInstance().getTimeInMillis();
            Long diff = end - start;
            LOGGER.info("Time: " + diff);
        }
Run Code Online (Sandbox Code Playgroud)

当我运行这个循环时,我需要大约300-600毫秒来合并一个对象.当我删除行"em.merge(ob);"时 然后我需要"0"毫秒来迭代1个列表对象.

所以我的问题是:我可以做些什么来缩短合并一个对象的时间?

谢谢!

java mysql performance openjpa

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

MySQL左连接无法正常工作

我想离开加入2桌.所以左表的所有属性都应该显示在结果表中,无论它是否可以与其他表连接.

当我这样做时,我没有得到预期的结果

week_table:
 date       kw note
 ---------- -- ----
 2012-04-01  0 NULL
 2012-04-02  0 NULL

fact_table:
id number_of_application number_of_cluster number_of_jvm number_of_node number_of_was fk_wasversion fk_date    fk_domain fk_osname fk_osarch fk_osversion fk_stage
 -- --------------------- ----------------- ------------- -------------- ------------- ------------- ---------- --------- --------- --------- ------------ --------
  1                   114                 8            80             18            18 6.0           2012-04-01 domain1   Linux     sparc     2            stage1
  2                   114                 8            80             18            18 6.0           2012-04-02 domain1   Linux     sparc     2            stage1
  3                   114                 8            80             18            18 6.0           2012-04-01 domain1   AIX       sparc     2 …
Run Code Online (Sandbox Code Playgroud)

mysql sql left-join

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

带有JPA的select子句中的suqueries

我需要在Apache Openjpa 2的select子句中执行子查询.JPA是否支持SELECT子句中的子查询?

我的查询是这样的:

SELECT t.date, t.value, 
  (SELECT COUNT(DISTINCT t2.value2) FROM table t2 WHERE t2.date = t.date)
FROM table t
WHERE ...
Run Code Online (Sandbox Code Playgroud)

当我执行我的查询时,我得到一个类强制转换异常:

Exception in thread "main" <openjpa-2.1.1-SNAPSHOT-r422266:1141200 nonfatal user error> org.apache.openjpa.persistence.ArgumentException: 
    at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:872)
    at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:794)
    at org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:542)
    at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:315)
    at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:331)
Caused by: java.lang.ClassCastException: org.apache.openjpa.jdbc.sql.LogicalUnion$UnionSelect incompatible with org.apache.openjpa.jdbc.sql.SelectImpl
    at org.apache.openjpa.jdbc.sql.SelectImpl.setParent(SelectImpl.java:579)
    at org.apache.openjpa.jdbc.kernel.exps.SelectConstructor.newSelect(SelectConstructor.java:147)
    at org.apache.openjpa.jdbc.kernel.exps.SelectConstructor.evaluate(SelectConstructor.java:87)
    at org.apache.openjpa.jdbc.kernel.exps.SubQ.appendTo(SubQ.java:209)
    at org.apache.openjpa.jdbc.kernel.exps.SubQ.appendTo(SubQ.java:203)
    at org.apache.openjpa.jdbc.kernel.exps.SubQ.newSQLBuffer(SubQ.java:167)
    at org.apache.openjpa.jdbc.kernel.exps.SubQ.selectColumns(SubQ.java:153)
    at org.apache.openjpa.jdbc.kernel.exps.SubQ.select(SubQ.java:148)
    at org.apache.openjpa.jdbc.kernel.exps.SelectConstructor.select(SelectConstructor.java:372)
    at org.apache.openjpa.jdbc.kernel.JDBCStoreQuery.populateSelect(JDBCStoreQuery.java:295)
    at org.apache.openjpa.jdbc.kernel.JDBCStoreQuery.access$100(JDBCStoreQuery.java:86)
    at org.apache.openjpa.jdbc.kernel.JDBCStoreQuery$1.select(JDBCStoreQuery.java:267)
    at org.apache.openjpa.jdbc.sql.LogicalUnion.select(LogicalUnion.java:297)
    at org.apache.openjpa.jdbc.kernel.JDBCStoreQuery.populateUnion(JDBCStoreQuery.java:265)
    at org.apache.openjpa.jdbc.kernel.JDBCStoreQuery.executeQuery(JDBCStoreQuery.java:211)
    at …
Run Code Online (Sandbox Code Playgroud)

subquery jpql jpa-2.0

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

JSF不在WebSphere Liberty Profile上工作

我在Eclipse Juno中使用WebSphere Application Server V8.5 Liberty Profile.我配置了我的AppServer(server.xml)并添加了jsp-2.2,jsf2.0,localConnector-1.0和servlet-3.0功能.

当我部署我的项目并在浏览器中打开JSP-Page时,一切都很顺利.但是当我想打开一个JSF-Page时,我得到以下异常:

[ERROR   ] An error occured while initializing MyFaces: org.apache.myfaces.spi.impl.DefaultFacesConfigurationMergerFactory cannot be cast to org.apache.myfaces.spi.FacesConfigurationMergerFactory
[ERROR   ] Uncaught.init.exception.thrown.by.servlet
[ERROR   ] SRVE0266E: Error occured while initializing servlets: javax.servlet.ServletException: SRVE0207E: Uncaught initialization exception created by servlet
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:382)
    at com.ibm.ws.webcontainer.osgi.servlet.ServletWrapper.init(ServletWrapper.java:83)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.loadOnStartupCheck(ServletWrapper.java:1353)
    at com.ibm.ws.webcontainer.webapp.WebApp.doLoadOnStartupActions(WebApp.java:862)
    at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinally(WebApp.java:831)
    at com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:753)
    at com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:5694)
    at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.createRunnableHandler(DynamicVirtualHost.java:220)
    at com.ibm.ws.http.internal.VirtualHostImpl.discriminate(VirtualHostImpl.java:165)
    at com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink.ready(HttpDispatcherLink.java:157)
    at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:444)
    at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.handleNewRequest(HttpInboundLink.java:378)
    at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.processRequest(HttpInboundLink.java:278)
    at com.ibm.ws.http.channel.internal.inbound.HttpInboundLink.ready(HttpInboundLink.java:249)
    at com.ibm.ws.tcpchannel.internal.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:174)
    at com.ibm.ws.tcpchannel.internal.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:83)
    at com.ibm.ws.tcpchannel.internal.WorkQueueManager.requestComplete(WorkQueueManager.java:502)
    at com.ibm.ws.tcpchannel.internal.WorkQueueManager.attemptIO(WorkQueueManager.java:550)
    at com.ibm.ws.tcpchannel.internal.WorkQueueManager.workerRun(WorkQueueManager.java:899)
    at …
Run Code Online (Sandbox Code Playgroud)

java websphere jsf-2 websphere-liberty

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

UI重复varStatus在CompositeComponent中不起作用

我在WebSphere Application Server 8上使用JSF 2.0(Apache myFaces).

我有一个bean,其中包含一个图表列表(jquery HighCharts的数据).对于每个图表,我需要一些JSF组件+一个写为CompositeCompoent的Highchart Wrapper(在这里查看)

所以我使用jsf 2的ui:repeat函数,如下所示:

<?xml version="1.0" encoding="UTF-8" ?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:p="http://primefaces.org/ui"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:hc="http://java.sun.com/jsf/composite/chartComponents"
    template="/template/mytemplate.xhtml">

    <ui:define name="content">


        <ui:repeat value="#{chartCtrl.charts }" var="chart" id="chartrepeat" varStatus="chartStatus">
                #{chartStatus.index }
                <h:form id="chartform_#{chartStatus.index }">

                    <!-- some jsf select stuff-->               
                </h:form>

                    #{chartStatus.index }
                    <hc:Chart title="Statistics" id="hcchart_#{chartStatus.index }"
                    <!-- here's the problem-->

                        <ui:repeat value="#{chart.series }" var="serie">
                            <hc:ChartSeries series="#{serie.data }" />
                        </ui:repeat>
                    </hc:Chart>
                    #{chartStatus.index }
            </p:panel>
        </ui:repeat>


        <h:outputScript library="js" name="highcharts.js" />
        <h:outputScript library="js/modules" name="exporting.js" />
        <h:outputScript library="js" name="jquery-1.9.1.min.js" …
Run Code Online (Sandbox Code Playgroud)

el composite-component jsf-2

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

HashSet添加重复的对象

我有一个HashSet,它在Graph中存储了一些边.每个Edge都有两个节点.

在图表未定向的情况下,添加副本应该失败:

Edge a = new Edge(new Node("aa"), new Node("bb"));
Edge duplicate = new Edge(new Node("aa"), new Node("bb"));
Run Code Online (Sandbox Code Playgroud)

但是在下面的例子中它起作用:

System.out.println(a.equals(duplicate));

Set<Edge> sete = new HashSet<Edge>();
System.out.println(sete.contains(a));
System.out.println(sete.add(a));
System.out.println(sete.contains(duplicate));
System.out.println(sete.add(duplicate));

Output:
true

false
true
false
true
Run Code Online (Sandbox Code Playgroud)

编辑:好的,现在我添加了一个hashCode方法,适用于定向边.有人可以帮我计算无向边的哈希吗?

public class Edge {
    private Node first, second;

    @Override
    public /boolean equals(Object ob) {
        if (ob instanceof Edge) {
            Edge edge = (Edge) ob;
            if (first.equals(edge.first)
                    && second.equals(edge.second)
                    || first.equals(edge.second)
                    && second.equals(edge.first))
                return true;
        }
        return false;
   }


    @Override
    public int hashCode() {
        int …
Run Code Online (Sandbox Code Playgroud)

java set hashcode

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