我在 EJB 容器中使用 JPA 构建了一个应用程序。 这是我的代码
@PersistenceContext(unitName = "damate-pu")
private EntityManager em;
@Override
public Workspace find(String username, String path) {
CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
CriteriaQuery<Workspace> criteriaQuery = criteriaBuilder.createQuery(Workspace.class);
Root<Workspace> from = criteriaQuery.from(Workspace.class);
Predicate condition = criteriaBuilder.equal(from.get("Username"), username);
Predicate condition2 = criteriaBuilder.equal(from.get("Path"), path);
Predicate condition3 = criteriaBuilder.and(condition, condition2);
criteriaQuery.where(condition3);
Query query = em.createQuery(criteriaQuery);
return (Workspace) query.getSingleResult();
}
当我尝试从网络服务运行此方法时,出现以下错误:
java.lang.IllegalArgumentException:来自托管类型的属性 [Username]....
可能是什么问题?我想我对 from.get("Username")...
有问题
你怎么看?以及如何解决?
编辑:Workspace.java
package com.ubb.damate.model;
import java.io.Serializable;
import javax.persistence.*;
import java.util.Date;
import java.util.Set;
/**
* The persistent class for the workspace database table.
*
*/
@Entity
@Table(name="workspace")
public class Workspace implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="WorkspaceId", unique=true, nullable=false)
private int workspaceId;
@Temporal( TemporalType.DATE)
@Column(name="CreationDate", nullable=false)
private Date creationDate;
@Lob()
@Column(name="Path", nullable=false)
private String path;
@Column(name="Username", nullable=false, length=20)
private String username;
//bi-directional many-to-one association to Project
@OneToMany(mappedBy="workspace")
private Set<Project> projects;
public Workspace() {
}
public int getWorkspaceId() {
return this.workspaceId;
}
public void setWorkspaceId(int workspaceId) {
this.workspaceId = workspaceId;
}
public Date getCreationDate() {
return this.creationDate;
}
public void setCreationDate(Date creationDate) {
this.creationDate = creationDate;
}
public String getPath() {
return this.path;
}
public void setPath(String path) {
this.path = path;
}
public String getUsername() {
return this.username;
}
public void setUsername(String username) {
this.username = username;
}
public Set<Project> getProjects() {
return this.projects;
}
public void setProjects(Set<Project> projects) {
this.projects = projects;
}
}
最佳答案
在构建条件查询(或在字符串中构建 jpql)时,您希望使用实体属性名称,而不是列名称。您的数据库列名为“Username”,但 Workspace 对象的属性是没有大写 U 的“username”。
关于java - JPA 查询语言 criteriaBuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4739979/
我正在用Ruby编写一个简单的程序来检查域列表是否被占用。基本上它循环遍历列表,并使用以下函数进行检查。require'rubygems'require'whois'defcheck_domain(domain)c=Whois::Client.newc.query("google.com").available?end程序不断出错(即使我在google.com中进行硬编码),并打印以下消息。鉴于该程序非常简单,我已经没有什么想法了-有什么建议吗?/Library/Ruby/Gems/1.8/gems/whois-2.0.2/lib/whois/server/adapters/base.
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/
我知道我可以指定某些字段来使用pluck查询数据库。ids=Item.where('due_at但是我想知道,是否有一种方法可以指定我想避免从数据库查询的某些字段。某种反拔?posts=Post.where(published:true).do_not_lookup(:enormous_field) 最佳答案 Model#attribute_names应该返回列/属性数组。您可以排除其中一些并传递给pluck或select方法。像这样:posts=Post.where(published:true).select(Post.attr
几个月前,我读了一篇关于rubygem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:
我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我
什么是ruby的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht
?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------
这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/