小编Dre*_*mer的帖子

使用Jackson将JPA实体序列化为JSON

关于Jackson/JPA组合的问题

  1. 如果当前应用程序中有大约20个实体,并且我在POM中添加了Jackson依赖项,是否意味着所有实体都默认准备转换为JSON对象?我看到一个示例项目似乎只有类被注释为@JsonIgnored跳过JSON.如果是这样,那怎么会发生这种机制背后的原因呢?如何JACKSON处理那些没有任何杰克逊注释的实体,默认情况下是否被忽略?我一直在网上寻找资源,但运气不好.

  2. 如果20个实体中只有一个需要映射到JSON对象,是否意味着我必须将@JsonIgnore添加到所有其他19个实体?如果没有,如何Jackson区分实体工作?

谢谢.

json ejb jpa java-ee jackson

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

如何真正关闭分层编译?

我的本地Java环境仍然存在

java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)

当我配置Jboss时,我试图关闭Tiered Compiler,就像Oracle 在这里建议的那样,现在有jvm参数(带-XX:-TieredCompilation):

VM Arguments: -XX:+UseCompressedOops -Dprogram.name=standalone.bat 
-XX:-TieredCompilation -XX:+PrintGCDetails -Xloggc:E:\serverLog\jvm.log
-Xms1303M -Xmx1303M -XX:MaxPermSize=256M 
-Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 
-Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true 
-Djboss.modules.system.pkgs=org.jboss.byteman 
-Djboss.server.default.config=standalone.xml -Dorg.jboss.boot.log.file=E:\JAVA
\JBOSS\EAP-6.0.0.GA\jboss-eap-6.0\standalone\log\boot.log 
-Dlogging.configuration=file:E:\JAVA\JBOSS\EAP-6.0.0.GA\jboss-eap-6.0
\standalone/configuration/logging.properties 
Run Code Online (Sandbox Code Playgroud)

但是,我仍然看到分层编译器出现在JBoss的boot.log中:

java.vm.name = Java HotSpot(TM) 64-Bit Server VM
sun.management.compiler = HotSpot 64-Bit Tiered Compilers
Run Code Online (Sandbox Code Playgroud)

我想知道HotSpot 64-Bit Tiered Compilers手段是否-XX:-TieredCompilation没有生效?那我怎么能真正关闭分层编译呢?

UPDATE

奇怪的是我添加-server了jvm参数,但它从未出现在Jboss的boot.log中的jvm参数中.

java jboss jvm

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

春季石英间隔:如果方法花费的时间比重复间隔更长,会发生什么?

恕我直言,这个问题quartz并不是很清楚:repeatInterval

如果该方法花费的时间比 长repeatInterval,会发生什么,即使当前方法没有完成,它是否也会触发触发器?如果该方法创建数据源对象,是否会导致连接池问题?

说明该方法通常需要5几秒钟才能完成,但可能会激增到10几秒钟,并且repeatInterval设置为8000(8 秒)

下次触发时会发生什么?我做了一些示例测试,看起来它会在16th第二次发生,因为第一次尝试8000ms 失败了

是这样的吗?对服务器性能有影响吗?

java spring quartz-scheduler

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

setFirstResult 和 setMaxResult 不适用于 Order By

什么可能导致该CriteriaQuery orderBy方法停止工作?

以下是实现:

    OpenJPAEntityManager kem = OpenJPAPersistence.cast(entityManager());
    kem.getFetchPlan().clearFetchGroups();
    kem.getFetchPlan().addFetchGroup("order_search");

    CriteriaBuilder builder = kem.getCriteriaBuilder();
    CriteriaQuery<Order> query = builder.createQuery(Order.class);
    Root<Order> order = query.from(Order.class);
    query.select(order);

    Predicate main_condition = buildWhereClause(builder, query, order, target_states, orderDate_from, orderDate_to, dueDate_from, dueDate_to, username);

    query.where(main_condition);

    query.orderBy(builder.desc(order.get("orderDate")));

    TypedQuery<Order> q = entityManager().createQuery(query);

    if (firstResult != 0)
        q.setFirstResult(firstResult);
    if (maxResults != 0)
        q.setMaxResults(maxResults);
Run Code Online (Sandbox Code Playgroud)

通过分页,当有 15 条记录并且我们希望每页有 5 条记录时,它应该是:

-page1- 1 2 3 4 5 -page2- 6 7 8 9 10 -page3- 11 12 13 14 15
Run Code Online (Sandbox Code Playgroud)

但现在我们得到的是

-page1- 1 2 3 …
Run Code Online (Sandbox Code Playgroud)

spring hibernate jpa openjpa jakarta-ee

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

为什么不建议在Oracle中使用直接参考物化视图?

引自Oracle在线文档

与索引不同,可以使用SELECT语句直接访问实例化视图.但是,建议您尝试避免编写直接引用实例化视图的SQL语句,因为在不影响应用程序的情况下很难更改它们.相反,让查询重写透明地重写您的查询以使用物化视图.

我不太明白direct reference materialized view在上下文中究竟是什么意思,听起来好像SELECT声明没关系,但是不推荐使用外键加入物化视图和订单表/视图,甚至select不建议使用它?为什么?

sql oracle view materialized-views

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

有没有一种简单的方法可以使用标准查询来选择实体的 id?

JPQL 使这种更改非常容易:

Select o from Orders as o where....

Select o.id from Orders as o where....
Run Code Online (Sandbox Code Playgroud)

但在标准查询中:

CriteriaBuilder builder = kem.getCriteriaBuilder();
CriteriaQuery<Orders> query = builder.createQuery(Orders.class);
Root<Order> orders= query.from(Orders.class);
query.select(orders);
....
Run Code Online (Sandbox Code Playgroud)

看起来选择项是由 builder.createQuery(Order.class) 定义的,没有任何灵活性。

我知道我们可以使用 Tuple.class,但除了喜欢之外,还有什么更好的方法可以从复杂的查询中获得额外的 id(只有一个字段)?没有这样的特征标准查询变得非常缺乏灵活性。

ejb jpa jpql jakarta-ee

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

字符串中的NodeJS v6.9.1变量不起作用

尝试从NodeJS学习基本功能,将基本字符串附加到带有变量的文件中:

const fs = require('fs');
const os = require('os');

var user = os.userInfo();

fs.appendFile('test.txt', 'Hello ${user.username}!');
Run Code Online (Sandbox Code Playgroud)

从test.txt我得到:

Hello ${user.username}!
Run Code Online (Sandbox Code Playgroud)

这里出什么问题了?

javascript node.js

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

request.getServletPath() 从 Spring MVC 返回 null

我做了一个过滤器来HttpServletRequest从所有请求中捕获sevlet 路径

@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain filterChain) throws IOException, ServletException {

    HttpServletRequest request = (HttpServletRequest)req;
    HttpServletResponse response = (HttpServletResponse)res;

    // debug to see the output
    String path = request.getServletPath();

    filterChain.doFilter(request, response);
}
Run Code Online (Sandbox Code Playgroud)

jsp 中有一个 URL 没有映射到它的控制器或视图

<div>
    <spring:url value="/app" var="app_url" htmlEscape="true"/>
    <a href="${app_url}"><spring:message code="label_3rd_app" /></a>
</div>
Run Code Online (Sandbox Code Playgroud)

但是,当在过滤器上调试时单击 url 时,我看到request.getServletPath()来自两个请求的值:

/null
/null/app
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么request.getServletPath()从不返回/app

spring jsp spring-mvc

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

Spring Boot应用程序启动时没有正确的应用程序名称

跑步时

./mvnw spring-boot:run
Run Code Online (Sandbox Code Playgroud)

当前的Spring Boot应用程序可以在浏览器中使用当前URL打开

http://localhost:8080/
Run Code Online (Sandbox Code Playgroud)

但不是

http://localhost:8080/AppName
Run Code Online (Sandbox Code Playgroud)

因此,即使在Swagger中,API也必须像这样检索

http://localhost:8080/api/swagger.json
Run Code Online (Sandbox Code Playgroud)

代替这个

http://localhost:8080/AppName/api/swagger.json
Run Code Online (Sandbox Code Playgroud)

那么如何AppName在上下文中添加?在以前的web.xml基于xml的日子里很容易,在基于Java的配置中我添加了

spring.application.name=AppName
Run Code Online (Sandbox Code Playgroud)

但仍然无法解决问题。

java spring spring-boot

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

替代在 Spark sql 中计数以检查查询是否返回空结果

我知道countSpark 中的 action 可能很昂贵,所以为了提高性能,我想有一种不同的方式来检查查询是否可以返回任何结果

这是我所做的

var df = spark.sql("select * from table_name where condition = 'blah' limit 1");
var dfEmpty = df.head(1).isEmpty;
Run Code Online (Sandbox Code Playgroud)

如果我使用上述解决方案来检查查询结果,它是一个有效的解决方案还是有任何潜在的未捕获错误?不过,它要快得多。

apache-spark apache-spark-sql

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