小编sur*_*a2k的帖子

JPA - 在persist()之后返回自动生成的id

我正在使用JPA(EclipseLink)和Spring.假设我有一个带有自动生成ID的简单实体:

@Entity
public class ABC implements Serializable {
     @Id
     @GeneratedValue(strategy=GenerationType.IDENTITY)
     private int id;

     // ...
}
Run Code Online (Sandbox Code Playgroud)

在我的DAO类中,我有一个调用persist()此实体的insert方法.我希望该方法返回新实体的生成ID,但是当我测试它时,它返回0.

public class ABCDao {
    @PersistenceContext
    EntityManager em;

    @Transactional(readOnly=false)
    public int insertABC(ABC abc) {
         em.persist(abc);
         // I WANT TO RETURN THE AUTO-GENERATED ID OF abc
         // HOW CAN I DO IT?
         return abc.id; // ???
    }
}
Run Code Online (Sandbox Code Playgroud)

我还有一个包装DAO的服务类,如果这有所不同:

public class ABCService {
    @Resource(name="ABCDao")
    ABCDao abcDao;

    public int addNewABC(ABC abc) {
         return abcDao.insertABC(abc);
    }
}
Run Code Online (Sandbox Code Playgroud)

java jpa

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

MySQL - 创建表时一起使用时"PRIMARY KEY","UNIQUE KEY"和"KEY"的含义

任何人都可以解释一下目的PRIMARY KEY,UNIQUE KEY并且KEY,如果将它放在CREATE TABLEMySQL 中的单个语句中?

CREATE TABLE IF NOT EXISTS `tmp` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `uid` varchar(255) NOT NULL,
  `name` varchar(255) NOT NULL,
  `tag` int(1) NOT NULL DEFAULT '0',
  `description` varchar(255),
  PRIMARY KEY (`id`),
  UNIQUE KEY `uid` (`uid`),
  KEY `name` (`name`),
  KEY `tag` (`tag`)
) ENGINE=InnoDB AUTO_INCREMENT=1 ;
Run Code Online (Sandbox Code Playgroud)

如何将此查询转换为MSSQL?

mysql sql-server primary-key unique-key

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

wget - 下载子目录

如何使用wget仅下载子目录?我可以指定需要下载的子目录吗?

谢谢!

wget

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

何时使用Spring Security的antMatcher()?

我们什么时候使用antMatcher()vs antMatchers()

例如:

http
   .antMatcher("/high_level_url_A/**")
   .authorizeRequests()
      .antMatchers("/high_level_url_A/sub_level_1").hasRole('USER')
      .antMatchers("/high_level_url_A/sub_level_2").hasRole('USER2')
      .somethingElse()
      .anyRequest().authenticated()
      .and()
   .antMatcher("/high_level_url_B/**")
   .authorizeRequests()
      .antMatchers("/high_level_url_B/sub_level_1").permitAll()
      .antMatchers("/high_level_url_B/sub_level_2").hasRole('USER3')
      .somethingElse()
      .anyRequest().authenticated()
      .and()
   ...
Run Code Online (Sandbox Code Playgroud)

我期待的是,

  • 任何匹配的请求都/high_level_url_A/**应该经过身份验证+ /high_level_url_A/sub_level_1仅适用于USER且/high_level_url_A/sub_level_2仅适用于USER2
  • 任何匹配的请求都/high_level_url_B/**应该被认证+ /high_level_url_B/sub_level_1用于公共访问,并且/high_level_url_A/sub_level_2仅用于USER3.
  • 我不关心的任何其他模式 - 但应该公开吗?

我看到最近的例子不包括antMatcher()这些天.这是为什么?是否antMatcher()不再需要?

spring-mvc spring-security spring-security4

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

Spring @Repository最佳实践

上下文:Web应用程序

我之前没有使用Spring,但是根据Spring文档,所有的bean都是singleton,除非我们将它们声明为prototype.

  • 不使用Spring:

通常,当调用业务/服务层时,我会实例化新的DAO.如果它是RESTfull服务,我实例化几乎所有依赖于调用的对象.

  • 随着春天:

我可以用数据访问类来注释@Repository,也可以@Service用于服务层类.

所以带有上述注释的类是singleton默认的.有一个@Scope注释,我们可以将它们声明为原型,但似乎没有人这样做.

  • 没有春天:new Object();每一次
  • 随着春天: singleton

我的问题是,

  1. 我之前使用的方式(每次创建新实例)不正确?
  2. 如果@Repositorysingleton,当没有解决这样的问题时,它如何处理线程安全?(假设它由弹簧代理完成)
  3. 什么是最佳实践, @Repository足够或添加@Scope('prototype')会更好?
  4. 我没有看到任何人使用@Scope('prototype')@Repository(根据教程,博客等).有一个众所周知的原因吗?
  5. 如果我的DAO类被多个大量高频率的线程访问怎么办?(这是我最关心的一个)

谢谢

java spring multithreading spring-mvc

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

WebSecurityConfigurerAdapter与ResourceServerConfigurerAdapter之间的关系

我正在尝试将Spring OAuth2集成到Spring MVC REST中.大多数Spring OAuth2示例中只有ResourceServerConfigurerAdapter一些也有一些WebSecurityConfigurerAdapter.我不打算将OAuth与Google,Facebook等集成.我正在尝试为Spring MVC REST提供基于令牌的身份验证,该Basic身份验证目前基于身份验证.有人可以在单个服务器中了解Spring MVC REST + OAuth集成需要什么,而不是或者很好的资源吗?

目前我的POC没有WebSecurityConfigurerAdapter,但与之ResourceServerConfigurerAdapter一起工作AuthorizationServerConfigurerAdapter.看起来ResourceServerConfigurerAdapter就够了.现在我不知道我应该怎样对我现有的WebSecurityConfigurerAdapter,在我的Spring MVC REST应用程序中完美运行.

spring-mvc spring-security spring-4 spring-oauth2

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

用于变量URL的Http负载测试工具

任何人都知道像"Apache Bench"这样的负载测试工具来发送变量URL.(相同的服务器,但不同的查询字符串)

例如,

ab -text list.txt -n 1000 http://test.com/search?
Run Code Online (Sandbox Code Playgroud)

LIST.TXT

name=abc&age=10
name=pqr&age=20
anything=anything&age=30
......
Run Code Online (Sandbox Code Playgroud)

注意:实际上在apache bench中没有这样的选项 - text

apachebench

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

打印调用函数的文件名,行号和函数名 - C Prog

我想创建包含info(),debug()和error()函数的log.c文件.这些功能无需打印文件名,行号等.因此,当我调用此函数之一时,我想转储调用者的文件名,行号和函数名.那么我们如何准确追溯?有没有办法追溯C,或者,如果我们使用宏,这怎么办?

c

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

Java - 停止访问数据库的长时间运行的线程

我启动了几个线程,但我没有通过信号或其他东西来阻止它们.例如,我不能将变量传递running=false给那些线程,因为我没有它们的引用,但是有它们的名字.

我正在使用a ThreadGroup并且我总是参考它.所以我可以做这样的事情.似乎它不起作用.

    Thread[] threads = new Thread[threadGroup.activeCount()];
    int count = threadGroup.enumerate(threads);
    for(int i = 0; i < count; i++){
        threads[i].interrupt();
    }
Run Code Online (Sandbox Code Playgroud)

这是我的帖子的一个例子.

    public void run{

         try{
             //myDAO.getRecords();
             //this takes 30seconds to 60
             //returns about 3 millions of records

         }catch(Exception e){
             //log
         }
    }
Run Code Online (Sandbox Code Playgroud)

当这个线程正在执行时,我想在中间停止它.无论如何batabase查询正在运行,但我想停止获取结果.

即使我打电话,我仍然得到了结果interrupt().有没有其他方法可以做到这一点还是我做错了什么?最终任务是取消Java中长时间运行的SQL查询.

java multithreading

11
推荐指数
2
解决办法
6154
查看次数

二进制列表到字符串列表 - Erlang

我如何转换[<<"a">>, <<"b">>, <<"c">>]["a", "b", "c"]

erlang

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