草庐IT

Hibernate

全部标签

java - 参数前缀 ':'后不允许有空格

我的问题是我尝试在查询中插入包含char:的文本我试过在char:之前加上双反斜杠//但还是不行。ABNORMALLY.java.lang.IllegalArgumentException:org.hibernate.QueryException:Spaceisnotallowedafterparameterprefix':'INSERTINTOTABLE_A(A_ID,TYPE_ID,F_ID,REFNO,RECORD)VALUES(A_ID_SEQ.nextval,4,9,'NY167',q'[LA2010167|SNIP'NCLIP|LMG|1.Unitno\\:1046,1st

java - DAO 实现的最佳实践

我一直在使用DAO模式来访问我一直在构建的应用程序中的持久层。我已经实现的其中一件事是围绕我的DAO实现进行“包装”以进行验证。包装器将我的DAO实例作为构造函数参数,并实现与DAO类似的接口(interface),除了抛出的异常类型。例如:业务逻辑接口(interface)publicinterfaceUserBLInt{privatevoidassignRightToUser(intuserId,intrightId)throwsSomeAppException;}DAO接口(interface)publicinterfaceUserDAOInt{privatevoidassign

java - 在存储库中保存实体不起作用 SPRING

我正在尝试将实体保存在存储库中,但它根本不起作用。存储库是Autowiring的,在运行时我使用saveAndFlush来保存实体。我正在使用PostgreSQL。在上面的测试方法中,我添加了注释并解释了发生了什么。我希望saveAndFlush方法应该起作用,但它没有起作用。我找不到原因。@TransactionalpublicclassTestClass{@AutowiredprivateMyRepositoryrepository;@AutowiredprivateEntityManagerentityManager;//Workingversionpublicvoidwriti

java - JPA:在空的多边上将获取结果加入到 NULL

我在User和GameMap之间有一个一对多的关系。一个用户可以拥有多张map。用户类://LAZYLOADED@OneToMany(cascade=CascadeType.ALL,mappedBy="creater")privatefinalListmaps=newArrayList();但是,有时我需要预先加载map。为了避免在关闭session后出现LazyInitializationException,我有两种检索用户的变体。用户存储库:publicinterfaceUserRepositoryextendsJpaRepository{OptionalfindById(Long

java - 如何在 hibernate 中编写连接查询

我创建了两个具有多对多关系的beanUser和VirtualDomain@Entity@Table(name="tblUser")publicclassUserimplementsSerializable{privateLongid;privateStringusername;privateSetvirtualdomainset;@Id@Column(name="id")@GeneratedValue(strategy=GenerationType.AUTO)publicLonggetId(){returnid;}publicvoidsetId(Longid){this.id=id;}

java - org.hibernate.tool.ant.HibernateToolTask​​ 到底在哪里?

我到底从哪里得到org.hibernate.tool.ant.HibernateToolTask​​?我似乎找不到包含它的.jar文件。 最佳答案 下载Hibernate工具-它位于plugins\org.hibernate.eclipse_3.2.4.CR2-R200901280154\lib\tools中的hibernate-tools.jar中 关于java-org.hibernate.tool.ant.HibernateToolTask​​到底在哪里?,我们在StackOverf

java - 如何使用 JPA 在 Hibernate 4 中启用 Multi-Tenancy ?

在我看来好像supportformultitenancyhasbeenaddedtohibernate近六个月了,updatedatleastoncesince.在JPA之外获取Multi-Tenancysession看起来相当简单:Sessionsession=sessionFactory.withOptions().tenantIdentifier("jboss").openSession();但是如何在通过JPA使用hibernate的应用程序中启用它呢?(如果可能的话)。提前致谢。 最佳答案 您可以通过persistence

java - Hibernate Criteria Api 是否完全防止 SQL 注入(inject)

我正在使用Hibernate来保护我的网站免受SQL注入(inject)攻击。听说HibernateCriteriaAPI比HQL更强大。HibernateCriteriaApi是否可以完全防止SQL注入(inject)? 最佳答案 是的,确实如此。CriteriaAPI以及HQL或JPQL中的查询参数都对参数进行了转义,不会执行恶意SQL。仅当您简单地将参数连接到查询中时才会暴露该漏洞。然后任何恶意SQL都会成为您查询的一部分。编辑OWASP有一个SQLinjectionpreventioncheatsheet.使用条件查询等同于

java - JPA Criteria query group by 只使用id

这是一个示例实体:publicclassAccount{@IdLongidDoubleremaining;@ManyToOneAccountTypetype}publicclassAccountType{@IdLongid;Stringname;}现在我创建一个条件查询,加入如下:CriteriaBuildercriteriaBuilder=getEntityManager().getCriteriaBuilder();CriteriaQuerycriteriaQuery=criteriaBuilder.createquery();RootaccountRoot=criteriaQue

java - 如何阻止 Hibernate 急切地获取多对一关联对象

我在域对象上有一个属性,该属性在多对一元素中声明。此属性的基本语法如下所示:现在的想法是让Hibernate不要急切地获取这个属性。它可能为空,因此设置了未找到的忽略。但是,Hibernate在加载包含此关联的类时,会在加载父类时自行加载实际的类(甚至不是代理)实例。由于某些属性的大小超过1MB,因此它们会占用大量堆空间。但是,如果not-found设置为异常(或默认为异常),则具有此属性的父类会加载代理!如何阻止hibernate不加载代理,同时仍然允许此属性为空?我找到了lazy=no-proxy,但是文档讨论了某种字节码修改,并没有涉及任何细节。有人可以帮帮我吗?如果重要的话,它