草庐IT

Hibernate-Session

全部标签

java - 为什么在使用注释时必须在 hibernate.cfg.xml 中声明每个类?

为什么设置@Entity注解还不够?我是否错过了这里的重点,例如性能? 最佳答案 注解是不够的,因为如果没有某种明确的声明,hibernate不知道你的注解类在哪里。从理论上讲,它可以扫描类路径中的每个类并查找注释,但这对于大型项目来说会非常非常昂贵。你可以使用spring,它有一个帮助器,可以让你指定你的hibernate对象所在的包,它只会扫描这些包以查找@Entity。如果您将所有对象都放在少量固定包中,则效果很好。例如com.xxx.hibernate.objects以上是Spring的声明。如果您不熟悉上述语法,您可以通过

java - hibernate composite 主键包含一个复合外键,如何映射这个

我在那里搜索,没有找到任何类似的主题,所以我发布了一个新问题。我在现有数据库上使用Hibernate。我们不允许更改表结构和数据。应用程序正在从数据库中读取数据并根据某种逻辑迁移到另一个数据存储区。现在的问题是关于复合PK映射。例如表A具有复合PK。TableA--------a1(pk)a2(pk)a3(pk)a4(pk)foobar========B表也有一个复合PK,这个复合PK的一部分是A的PK,这里也作为FK。TableB--------a1(fk,pk)a2(fk,pk)a3(fk,pk)a4(fk,pk)b1(pk)b2(pk)b3(pk)foobar========我尝

java - DAO、Spring 和 Hibernate

如有不妥请指正现在当我们将SpringDAO用于ORM模板时,当我们使用@Transactional属性时,当方法在外部而不是在方法内部调用时,我们无法控制事务和/或session。延迟加载可节省资源-减少对数据库的查询,减少将所有已提取的集合保存在应用程序内存中的内存。因此,如果lazy=false,则获取所有内容,所有关联的集合,如果链接集中有10,000条记录,那是无效的。现在,我在DAO类中有一个方法应该返回一个User对象。它具有代表数据库链接表的集合。我需要通过id获取一个对象,然后查询它的集合。当我尝试访问此DAO方法返回的链接集合时,Hibernate发生“无法延迟初始

java - 当客户端返回时,有状态 session Bean 如何重新获得状态?

如果有状态sessionbean将被钝化,它的状态将被写入硬盘,然后bean实例将被释放以服务于其他请求(至少这是我的理解)。当同一个客户端再次激活时,bean实例将从硬盘读取状态以重新获得状态。但是bean实例如何知道它必须为哪个客户端读取哪个文件来维护状态?我是J2EE的新手,所以如果我提出一个非常幼稚的问题,请原谅我。如果我需要了解任何其他主题才能理解这一点,请指出正确的方向。 最佳答案 最好将有状态sessionBean(SfSB)可视化为非常接近普通Java类的实例。您查找(或注入(inject))一个SfSB实例,容器将

java - 只知道我当前 JSESSIONID 的人可以冒充/劫持我的 session (Tomcat 7/Glassfish 3.2))吗?

我正在寻找关于JSESSIONID如何从安全方面工作的通俗英语“傻瓜式”解释只知道我当前JSESSIONID的人可以冒充/劫持我的session吗?在什么情况下JSESSIONID将成为URL的一部分,这是OWASP#2securityrisk(场景#1)仍然与最新版本的Tomcat/Glassfish相关,如果是这样,如何“关闭/打开”以防止它? 最佳答案 Q:CansomeonewhomerelyknowsmycurrentJSESSIONIDimpersonate/hijackmysession?答:是的。这就是为什么您的网站

java - session 是否存在

我正在尝试在GoogleAppEngine上编写我的第一个应用程序,我试图维护一个session,我在提交时创建了一个登录页面,它调用了一个servlet,servlet使用以下代码验证用户并创建一个新session。voidcreateSession(StringUsername){getThreadLocalRequest().getSession(true).setAttribute("Username",Username);}调用servlet后的登录页面重定向到某个页面,即abc.jsp,我的abc.jsp页面包含WelcometoLoginLogout它工作正常,但是当我访

java - 为什么 JMS session 对象不是线程安全的?

为什么JMS规范的设计方式是当创建session的连接对象是线程安全的(由线程共享)时,session对象不能被并发线程使用? 最佳答案 JMSsession对象通常用于事务。而且我们都知道事务是线程特定的,不能跨线程。因此,事务处理的JMSsession不能跨线程使用。我相信出于这个原因,JMS规范说session不是线程安全的。 关于java-为什么JMSsession对象不是线程安全的?,我们在StackOverflow上找到一个类似的问题: https

java - Hibernate @Proxy(lazy = false) 注解有什么作用?

在尝试序列化我的ESRBRating对象时,我遇到了两个不同的堆栈跟踪(见下文),它是一个JPA实体。我正在使用SpringDataJPA。Controller称为服务,服务称为存储库。我能够通过在我的ESRBRating对象上添加@Proxy(lazy=false)来解决这个问题。我的主要问题是@Proxy(lazy=false)实际上做了什么?为什么加的时候会起作用?这是一个好的解决方案还是会产生副作用,例如性能/内存问题?作为引用,这是我现在的ESRBRating类(class)。@Entity@Table(name="esrb_rating",schema="igdb")@Js

java - Hibernate 在不引用其他表的情况下持久化 Map<String, String>

你能帮我用Hibernate持久化字符串映射吗?map值来自客户端并且是随机的,所以我不想为map值存储单独的表异常Causedby:org.hibernate.AnnotationException:Associatedclassnotfound:java.lang.String代码@EntitypublicclassUserConfig{@Id@SequenceGenerator(sequenceName="CONFIG_SEQ",name="ConfigSeq",allocationSize=1)@GeneratedValue(strategy=GenerationType.SE

java - 避免 Hibernate LazyInitializationExceptions 的策略

除了使用OpenSessionInView模式之外,还有其他方法可以避免HibernateWeb应用程序中的LazyInitializationExceptions吗?使用OpenSessionInView有什么缺点吗? 最佳答案 在我们的Web应用程序上工作时,我们通常会事先决定View页面中需要哪些对象/字段,并确保在分派(dispatch)到View之前所有对象都已从模型中正确初始化。这可以(至少)通过三种方式实现:fetching使用急切策略的属性(即使用FetchMode.JOIN,如果您使用CriteriaAPI)显式初