我正在使用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) 任何人都可以解释一下目的PRIMARY KEY
,UNIQUE KEY
并且KEY
,如果将它放在CREATE TABLE
MySQL 中的单个语句中?
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?
我们什么时候使用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()
不再需要?
上下文:Web应用程序
我之前没有使用Spring,但是根据Spring文档,所有的bean都是singleton
,除非我们将它们声明为prototype
.
通常,当调用业务/服务层时,我会实例化新的DAO.如果它是RESTfull服务,我实例化几乎所有依赖于调用的对象.
我可以用数据访问类来注释@Repository
,也可以@Service
用于服务层类.
所以带有上述注释的类是singleton
默认的.有一个@Scope
注释,我们可以将它们声明为原型,但似乎没有人这样做.
new Object();
每一次singleton
我的问题是,
@Repository
是singleton
,当没有解决这样的问题时,它如何处理线程安全?(假设它由弹簧代理完成)@Repository
足够或添加@Scope('prototype')
会更好?@Scope('prototype')
与@Repository
(根据教程,博客等).有一个众所周知的原因吗?谢谢
我正在尝试将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应用程序中完美运行.
任何人都知道像"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
我想创建包含info(),debug()和error()函数的log.c文件.这些功能无需打印文件名,行号等.因此,当我调用此函数之一时,我想转储调用者的文件名,行号和函数名.那么我们如何准确追溯?有没有办法追溯C,或者,如果我们使用宏,这怎么办?
我启动了几个线程,但我没有通过信号或其他东西来阻止它们.例如,我不能将变量传递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 ×3
spring-mvc ×3
apachebench ×1
c ×1
erlang ×1
jpa ×1
mysql ×1
primary-key ×1
spring ×1
spring-4 ×1
sql-server ×1
unique-key ×1
wget ×1