我的@MapsId注释有问题@EmbeddedId.在Hibernate中运行代码时,我得到:
由以下原因引起:org.hibernate.PropertyAccessException:无法通过com.test.entities.EmployeeId.serverId的反射设置器设置字段值
但是,让我们从头开始......我有一个实体的复合主键,Employee它包含两个其他实体的外键(Server和Website).为了实现干净的设计,我在Employee实体中使用实体关系,这应该反映在EmployeeIdembeddable中.这个例子很简单,如下:
@Entity
public class Server implements Serializable {
@Id
@GeneratedValue
private int id;
private String url;
public Server() {}
public Server(String name) {
this.url = name;
}
}
Run Code Online (Sandbox Code Playgroud)
@Entity
public class Website implements Serializable {
@Id
@GeneratedValue
private int id;
private String name;
public Website() {}
public Website(String name) {
this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
@Embeddable
public class EmployeeId implements Serializable {
protected int websiteId;
protected …Run Code Online (Sandbox Code Playgroud) 我在JSP中创建了一个框架,它在源代码中占用了一些基本身份验证的网站
<frameset frameborder="0" border="0" framespacing="0">
<frame name="content" src="http://abc/" marginheight="0"
marginwidth="0" scrolling="auto" noresize>
Run Code Online (Sandbox Code Playgroud)
但是当这个框架加载时,它会提示浏览器的登录框.
应该使用什么代码,以便如果我提供硬编码的用户名和密码,每次当我在框架内运行网站时,它会直接加载网站?
Hibernate允许使用来通过@ManyToOne映射添加索引@org.hibernate.annotations.Index。
有没有一种方法可以为@ManyToMany关系中的连接表指定索引?
如果Entity A和Entity 的拥有方B为@ManyToManywith A,则联接表将具有复合索引(a1,b1)。
我想知道这是否足够,还是需要创建另一个索引(b1,a1)?
我正在尝试从GAE服务器gzip响应,但在Content-Encoding中收到null.
我有以下代码:
connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type",
"application/json; charset=utf-8"); //"application/json; charset=utf-8"
connection.setRequestProperty("Accept-Encoding", "gzip");
connection.setRequestProperty("User-Agent", "gzip");
connection.setUseCaches (false);
connection.setDoInput(true);
connection.setDoOutput(true);
//write
//read
System.out.println("Content-Encoding " + connection.getContentEncoding());
Run Code Online (Sandbox Code Playgroud)
我已经读过,GAE服务器会自动压缩.那可能是什么问题呢?
我正在使用JPA/Hibernate(他们的新手).当发生异常(可能是唯一的约束违规)时,我想捕获它并显示一些应用程序含义消息,而不是打印堆栈跟踪.
Hibernate是否提供了一些工具来获取有关异常的信息(可能与数据库无关)?
新的JSR 299"Java EE的上下文和依赖注入"似乎基于"范围"的概念.
创建bean并将其与受支持的Scope之一相关联:Application,Session(映射到HTTP会话),Conversation和Request.
如果没有HTTP会话(例如,通过EJB远程公开功能的企业应用程序),使用CDI是否有意义,因为托管Bean不会与任何上下文相关联(因为它们不存在)?
在这种情况下甚至可以使用CDI吗?它会带来哪些优势?
在我们当前的应用程序(Java SE)中,我们使用Hibernate特定的API,但我们希望尽可能(但慢慢地)迁移到JPA.为此,我需要EntityManagerFactory而不是SessionFactory(我想保持这个公理没有争议).
问题出在哪里,目前我们的会话工厂正在创建org.hibernate.cfg.Configuration,我想暂时保留它 - 因为这个配置通过我们软件的不同部分传递,可以并且可以根据需要配置持久性.
所以问题是:我该怎么做
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
.applySettings( hibConfiguration.getProperties() )
.buildServiceRegistry();
SessionFactory sessionFactory = hibConfiguration.buildSessionFactory( serviceRegistry );
Run Code Online (Sandbox Code Playgroud)
相当于导致EntityManagerFactory?
public class Servlet2Stateless extends HttpServlet {
@EJB private HelloUserLocal helloUser;
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println(newSess.getName());
}
Run Code Online (Sandbox Code Playgroud)
当我将EJB和Servlet部署在不同的服务器上时,上面的代码行会工作吗?或者我需要通过传统方式调用它?
我为我的项目使用JPA和Hibernate.我有两个具有相同名称但在不同包中的类.他们是:
@Entity(name = "X_USER")
@Table(name = "X_USER")
public class User {
Run Code Online (Sandbox Code Playgroud)
和:
@Entity
@Table(name="Y_USER")
public class User {
Run Code Online (Sandbox Code Playgroud)
我正在创建一个搜索查询:.getSimpleName()但它没有用,因为它们的简单名称是相同的.我改成了.getName().
但是,它仍然会让人感到困惑User.
编辑:
我有这个:
SELECT_BY_PROPERTY_QUERY = "SELECT p FROM :CLASS: p WHERE p.:PROPNAME:=?";
Run Code Online (Sandbox Code Playgroud)
那我:
SELECT_BY_PROPERTY_QUERY.replaceFirst(":CLASS:", clazz.getName()).replaceFirst(":PROPNAME:", propertyName);
Run Code Online (Sandbox Code Playgroud)
当我调试它时,它会像:
Select p from User p Where p.name=?
Run Code Online (Sandbox Code Playgroud)
它仍然是User,它不包括包信息,并返回错误的User类.
我有一个POJO类,它包括:
- 持久属性,
- 瞬态属性.
在编写HQL时,我考虑了两者:持久性和瞬态属性.就像HQL一样select persistent_properties,transient_prop from Pojo_classname
这是对的吗?
我可以@Basic为瞬态变量写注释吗?