小编Pio*_*cki的帖子

使用@MapsId,@ EmbeddedId进行Hibernate异常

我的@MapsId注释有问题@EmbeddedId.在Hibernate中运行代码时,我得到:

由以下原因引起:org.hibernate.PropertyAccessException:无法通过com.test.entities.EmployeeId.serverId的反射设置器设置字段值

但是,让我们从头开始......我有一个实体的复合主键,Employee它包含两个其他实体的外键(ServerWebsite).为了实现干净的设计,我在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)

hibernate jpa eclipselink jpa-2.0

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

通过基本身份验证而不从JSP框架中的浏览器提示登录框

我在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)

但是当这个框架加载时,它会提示浏览器的登录框.

应该使用什么代码,以便如果我提供硬编码的用户名和密码,每次当我在框架内运行网站时,它会直接加载网站?

html java jsp basic-authentication

7
推荐指数
1
解决办法
2137
查看次数

JPA @ManyToMany联接表索引

Hibernate允许使用来通过@ManyToOne映射添加索引@org.hibernate.annotations.Index

有没有一种方法可以为@ManyToMany关系中的连接表指定索引?

如果Entity A和Entity 的拥有方B@ManyToManywith A,则联接表将具有复合索引(a1,b1)。

我想知道这是否足够,还是需要创建另一个索引(b1,a1)?

sql database optimization hibernate jpa

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

AppEngine gzip压缩

我正在尝试从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服务器会自动压缩.那可能是什么问题呢?

java google-app-engine servlets

7
推荐指数
1
解决办法
2511
查看次数

JPA/Hibernate异常处理

我正在使用JPA/Hibernate(他们的新手).当发生异常(可能是唯一的约束违规)时,我想捕获它并显示一些应用程序含义消息,而不是打印堆栈跟踪.

Hibernate是否提供了一些工具来获取有关异常的信息(可能与数据库无关)?

hibernate jpa exception

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

如果没有Web层,因此没有HTTP会话,CDI是否有意义?

新的JSR 299"Java EE的上下文和依赖注入"似乎基于"范围"的概念.

创建bean并将其与受支持的Scope之一相关联:Application,Session(映射到HTTP会话),Conversation和Request.

如果没有HTTP会话(例如,通过EJB远程公开功能的企业应用程序),使用CDI是否有意义,因为托管Bean不会与任何上下文相关联(因为它们不存在)?

在这种情况下甚至可以使用CDI吗?它会带来哪些优势?

java cdi java-ee-6 ejb-3.1

7
推荐指数
1
解决办法
362
查看次数

从hibernate配置创建EntityManagerFactory

在我们当前的应用程序(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

java hibernate jpa sessionfactory entitymanager

7
推荐指数
1
解决办法
5027
查看次数

@EJB Annotation是否适用于远程呼叫?

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部署在不同的服务器上时,上面的代码行会工作吗?或者我需要通过传统方式调用它?

annotations dependency-injection ejb

6
推荐指数
1
解决办法
4160
查看次数

JPA如何识别具有相同名称但在不同包中的两个类?

我为我的项目使用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类.

java hibernate jpa entitymanager

6
推荐指数
1
解决办法
1695
查看次数

注释@Basic到瞬态变量

我有一个POJO类,它包括:
- 持久属性,
- 瞬态属性.

在编写HQL时,我考虑了两者:持久性和瞬态属性.就像HQL一样select persistent_properties,transient_prop from Pojo_classname

这是对的吗?

我可以@Basic为瞬态变量写注释吗?

java annotations jpa hql java-ee

6
推荐指数
1
解决办法
1674
查看次数