小编Bhu*_*tel的帖子

我们为什么要在类中声明一个接口?

我们为什么要在Java中声明一个类中的接口?

例如:

public class GenericModelLinker implements IModelLinker {

  private static final Logger LOG =LoggerFactory.getLogger(GenericModelLinker.class);
  private String joinAsPropertyField;
  private boolean joinAsListEntry;
  private boolean clearList;
  private List<Link> joins;

  //instead of a scalar property
  private String uniqueProperty;

  public interface Link {

    Object getProperty(IAdaptable n);

    void setProperty(IAdaptable n, Object value);

  }
}
Run Code Online (Sandbox Code Playgroud)

java

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

Spring启动显示sql参数绑定?

我是春季靴子的新手.sql参数绑定的配置设置是什么.例如,在以下行中,我应该能够看到所有'?'的值.

SELECT*FROM MyFeed WHERE feedId>?AND isHidden = false ORDER BY feedId DESC LIMIT?

目前我配置为

spring.jpa.show-sql:true

jpa spring-data spring-boot

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

关于更新当前时间戳的Mysql 5.6列在hibernate中不起作用

我在表格答案中有一个名为lastModified的列,如下所示

 +--------------+----------------+------+-----+-------------------+-----------------------------+
 | Field        | Type           | Null | Key | Default           | Extra                       |
 +--------------+----------------+------+-----+-------------------+-----------------------------+
 | answerId     | int(11)        | NO   | PRI | NULL              | auto_increment              |
 | totalComment | int(11)        | NO   |     | 0                 |                             |
 | totalView    | int(11)        | NO   |     | 0                 |                             |
 | totalSpam    | int(11)        | YES  |     | 0                 |                             |
 | lastModified | timestamp      | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
 +--------------+----------------+------+-----+-------------------+-----------------------------+
Run Code Online (Sandbox Code Playgroud)

每当我在mysql控制台中对totalComment,totalView,totalSpam列中的任何一个进行manullay更新时,lastModifed列也会被当前时间戳修改.但是,当我使用hibernate应用程序执行相同的操作时,它不会被修改.

我的应用程序是作为spring数据jpa的一部分实现的.在application.yml中,我尝试使用org.hibernate.dialect.MySQLDialect …

mysql hibernate jpa

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

将自定义注释建议应用于 spring data jpa 存储库

我正在研究 mysql 主从复制。我正在使用 spring data jpa(spring boot)。

我需要的是所有写入操作都转到主服务器,而只读操作则均匀分布在多个只读从服务器之间。

为此我需要:

使用特殊的 JDBC 驱动程序:com.mysql.jdbc.ReplicationDriver

在 URL 中设置复制:

spring:
    datasource:
        driverClassName: com.mysql.jdbc.ReplicationDriver
        url: jdbc:mysql:replication://127.0.0.1:3306,127.0.0.1:3307/MyForum?user=root&password=password&autoReconnect=true
        test-on-borrow: true
        validation-query: SELECT 1
    database: MYSQL
Run Code Online (Sandbox Code Playgroud)

需要关闭自动提交。(*) 连接需要设置为只读。

为了确保 JDBC Connection 设置为只读,我创建了一个注释和一个简单的 AOP 拦截器。

注解

package com.xyz.forum.replication;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; 

/**
 * Created by Bhupati Patel on 02/11/15.
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface ReadOnlyConnection {
}
Run Code Online (Sandbox Code Playgroud)

拦截器

package com.xyz.forum.replication;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.hibernate.Session;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory; …
Run Code Online (Sandbox Code Playgroud)

spring aspectj spring-aop spring-data-jpa spring-aspects

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

如何在java中将特定的线程数限制为synchronized块

我无法弄清楚这个问题.在多线程环境中 - 正好3个线程应该能够执行同步块并且休息应该等待吗?

我所理解的是当我们使用同步或监视器时,一个线程将等到另一个线程在侧同步块或方法中完成其执行.要实现多个线程进入同步块或方法内部我们需要使用wait(),notify(),notifyAll()即线程间通信,其中wait()方法在调用某个对象时会占用其锁定并给予机会其他等待的线程.

所以,我想知道如何做上述问题.我不确定我是否以正确的方式提出了我的问题.如果可能的话,我们需要使用java concurrent util包,还是可以在基本(核心)线程功能中完成.

java multithreading

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