ERROR: duplicate key value violates unique constraint "users_pkey"
Detail: Key (userid)=(2701) already exists.每当我使用持久模型更新我的用户实体时,我都会得到一个.
在下面的代码示例中:SetLoginAttempts接受已查询的用户实体,当我启动事务时,我只需设置实体的一个字段并调用persist(),然后提交事务.
/**
* @param user
* @param attemptNumber
*/
@Transactional
public void setLoginAttempts(Users user, int attemptNumber){
user.setLoginAttempts(attemptNumber);
System.out.println(user);
}
Run Code Online (Sandbox Code Playgroud)
以下是我如何引用和获取实体管理器:
eFactory = Persistence.createEntityManagerFactory("persistenceUnit");
eManager = eFactory.createEntityManager();
Run Code Online (Sandbox Code Playgroud)
在查看堆栈跟踪时,我注意到提交实际上注入了一个插入
Call: INSERT INTO USERS (userID, EMAIL, ISLOCKED, LOGINATTEMPTS, passwordHash, passwordSalt, USERNAME, version) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
bind => [2701, admin@d.com, false, 1, $shiro1$SHA-256$500000$6mqzZ/d/3BLQuJqLh1dDhQ==$NKW7Z++o/JTvf884aDWhP3Uhpyb5fTPMrm4joWnw7nI=, [B@1a8e3115, admin, 1]
Run Code Online (Sandbox Code Playgroud)
在Spring roo中引用实体管理器,更新字段并提交更改的正确方法是什么?
编辑
我将@Transactional添加到方法中,堆栈跟踪显示这是创建实体管理器实例:
2012-03-14 23:49:15,503 ["http-bio-8080"-exec-18] DEBUG …Run Code Online (Sandbox Code Playgroud) 我不知道为什么,但如果我尝试使用该$set方法更新现有字段,则在同一上下文中替换任何现有字段.
例如.假设我有一个包含以下字段的现有集合.
收藏名称: Ticket
{profile: {name: "Test", placement: 1}, requestor: _id}
Run Code Online (Sandbox Code Playgroud)
当我尝试向此集合添加/更新字段时,如下所示:
var ticket = Meteor.tickets.findOne({_id: ticketID});
if(ticket){
Meteor.users.update(ticket, {
$set: profile: {name: "Test2", new_fields: "value"}
});
}
Run Code Online (Sandbox Code Playgroud)
集合会更新,名称字段会更改,但展示位置会被删除,不再存在.如果我删除该name字段也是如此.我们如何正确更新流星集合而不必一遍又一遍地传递相同的结构?
我不确定之前是否有人问过这个问题,但是loginTokens它们变得非常大而且没有任何清理会使我的数据库大小增加。正在对此采取什么措施?其他人正在做什么来管理这个。我指的是默认值Meteor.users.services,它具有每次用户登录/退出时创建的 loginTokens 数组
"resume" : {
"loginTokens" : [
{
"token" : "HMntXepqzPBLDGkGX",
"when" : 1372559065392
},
{
"token" : "uCHqA95HZZyN5tRtH",
"when" : 1372563545565
},
{
"token" : "sNGZhhATTrTg8582w",
"when" : 1372622561176
},
{
"token" : "hPWpm4uQQXWrkK6NS",
"when" : 1372634411432
},
{
"token" : "DFntTEcsKKT6bJ3rx",
"when" : 1372635411745
},
{
"token" : "BBM3acLQhuNtsHvkn",
"when" : 1372638979158
},
{
"token" : "EHgLLHMh6JWxKfuoe",
"when" : 1372825386462
}
]
}
Run Code Online (Sandbox Code Playgroud) 当我在服务器上定义我的流星集合并试图在客户端访问它们而不是在任何流星提供的方法中时,rendered, events, created, helpers ...我总是会收到一个错误,说Meteor collection not defined如果我尝试在客户端重新定义该方法,我得到了Meteor collection already exists.我可以通过在Meteor.startup()函数中引用我的自定义集合来解决这个问题.如何引用我在客户端服务器上定义的集合.在流星文档中Meteor.Collection(),即使在声明之前,也能够创建两个实例并进行订阅.
// okay to subscribe (and possibly receive data) before declaring
// the client collection that will hold it. assume "allplayers"
// publishes data from **server's "players" collection.**
Meteor.subscribe("allplayers");
...
// client queues incoming players records until ...
...
Players = new Meteor.Collection("players");
Run Code Online (Sandbox Code Playgroud) 任何使用流星和SCSS进行开发的人.你是如何开始的,没有陨石包可以找到将.scss文件编译到特定文件夹中?
我们是否可以using在构造函数中使用该语句来声明对象的实例以供以后使用.例如.
public class TestClass {
private DataClassesDataContext _dataContext;
public TestClass(string connString){
using (this._dataContext = DataClassesDataContext(connString));
}
private bool someMethod(){
_dataContext.instanceMethod(); // i want to use instance methods wherever needed and define once
}
}
Run Code Online (Sandbox Code Playgroud) 当我尝试使用最新版本的meteor.js进行更新时,我收到一个意外错误.类型错误没有指定它失败的字段,我不确定这是否与mongo相关.有没有人见过这个错误?
Error in Mongo write: TypeError: boolean is not a function
I20130901-19:44:56.515(-5)? at writeCallback (packages/mongo-livedata/mongo_driver.js:206)
I20130901-19:44:56.515(-5)? at Meteor.bindEnvironment.runWithEnvironment (packages/meteor/dynamics_nodejs.js:69)
Run Code Online (Sandbox Code Playgroud)
通过指定服务器端调用的回调,我能够阻止我的客户端阻塞.
# File 1
me = MongoEngine(app) # I want to use my instance of MongoEngine to define new classes like the example in File 2
# File 2
class Book(me.Document):
title = StringField(null=False, unique=True)
year_published = IntField(null=True)
Run Code Online (Sandbox Code Playgroud)
在新文件中创建新类时,如何将实例me.Document作为对象定义传递。如果我把它们放在同一个文件中,它会起作用吗?
如何使用meteor和Iron-Router从Template.event调用中将官方重定向到另一个路由.我似乎,至少与Dev分支遇到同样的错误
`if (this._isRunning) // 174
throw new Error('Already in a page run'); `
Run Code Online (Sandbox Code Playgroud)
作为一个例子,我有一个按钮,Router.go('/home');如果我运行这个点击调用,我得到'已经在页面运行'错误.其他任何使用路由器路由的方法?
它实际上'this.redirect('/anotherpath')'是导致问题的原因.有没有办法停止当前运行的页面运行并重定向到另一个路由?
我试图迭代一个字符串数组并检查/替换输入字符串中是否存在任何字符串.使用LINQ,这是我到目前为止所拥有的.
string input = "/main/dev.website.com"
string[] itemsToIgnore = { "dev.", "qa.", "/main/" };
string website = itemsToIgnore
.Select(x =>
{ x = input.Replace(x, ""); return x; })
.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
当我运行它时,实际上什么也没发生,我的输入字符串保持不变?
meteor ×6
c# ×2
mongodb ×2
abstraction ×1
arrays ×1
eclipselink ×1
idisposable ×1
iron-router ×1
java ×1
javascript ×1
jpa ×1
linq ×1
oop ×1
python-3.x ×1
sass ×1
spring-roo ×1
updates ×1
using ×1