草庐IT

实体抽取

全部标签

java - 验证 Jpa 实体 : In service or by lifecycle listeners

问题是将Jpa实体的业务验证逻辑放在哪里更好(或者换句话说:您更喜欢在哪里)。两个想法是:在EntityListener中,在保存或更新之前将验证实体在提供对jpa持久化方法的访问的服务中。两者各有利弊。当使用方法2时,它更容易测试,因为您可以模拟jpa提供程序并测试验证逻辑。另一方面,对于方法1,验证将与@NotNull等验证同时发生。我很想知道你们如何解决项目中的验证问题,哪种方法更好。谢谢。 最佳答案 这是我遵循的一般经验法则:Whenusingbeanvalidation,specifyrulesthatdonotrequi

java - 无监督命名实体识别(NER),带有自定义控制的词汇表,用于 Java 中的交联建议

我正在寻找一个Java库,它可以使用自定义受控词汇表进行命名实体识别(NER),而无需首先使用带标签的训练数据。我在SE上搜索了一些,但大多数问题都不具体。考虑以下用例:一位编辑正在CMS中输入文章(大约500字)。文本可能包含对特定域实体的引用(以纯文本形式)。例如:兴趣点的名称,例如酒吧、餐馆以及社区等。存在这些实体的受控词汇表(大约5.000个实体)。我想象一个实体是词汇表中的一个元组完成文本后,用户应该能够保存文档。这会触发工作流,通过与实体名称进行比较,根据词汇表扫描一段文本。不需要100%匹配:Jarao-winkler上的97%或其他(我不熟悉算法的NER使用的)可能就足

java - 使用 Hibernate 请求和分页多个不相关的实体类型

我有一个奇怪的业务需求。我们有多个不相关的实体类型,它们需要显示在一个统一的列表中,其中包含来自实体的一些基本信息,并按保证它们都具有的唯一字段DATE进行排序。这些实体可能在也可能不在同一个数据库中。结果集需要可分页。是否有通过Criteria、HQL或一些理智手段实现这一目标的可行方法? 最佳答案 通常您会让所有这些类扩展公共(public)基类并使用多态Hibernate查询。从你的描述来看,这似乎不可行。当然,如果你想采用Hibernate方式,你必须首先获取每个不相关表的大小,确定请求页面中的记录位于哪个表中(或者可能在多

java - 与父实体一起驱逐依赖集合

我刚刚意识到,当一个对象从Hibernate缓存中被逐出时,dependantcollections,ifcached,havetobeevictedseparately.对我来说,这是一个很大的WTF:很容易忘记驱逐一个集合(例如,当一个新的集合被添加到对象映射时);驱逐依赖集合的代码丑陋且庞大,例如MyClassmyObject=...;getHibernateTemplate().evict(myObject);缓存cache=getHibernateTemplate().getSessionFactory().getCache();cache.evictCollection("

Java - 实体扩展限制。我在哪里设置这个?

我正在使用Java,当我尝试将数组写入CSV文件时,我遇到了以下错误:Theparserhasencounteredmorethan"64,000"entityexpansions我搜索了一下,发现我需要使用entityExpansionLimit来解决这个问题,方法是在java命令行中输入:-DentityExpansionLimit=100000但是作为Java和这类东西的新手,我不明白应该在哪里键入该命令。我尝试在命令提示符下输入它,但没有任何反应有人可以指导我吗?我应该在命令提示符下导航到特定文件夹吗? 最佳答案 使用选项-

java - hibernate 。什么时候同一实体可以在一个 session 中加载两次?

遇到这样的问题。加载了2个对象的集合(按主键,使用条件)。然后在循环中迭代它们。当处理第一个对象时,在离这个循环非常远的地方,通过与循环中第二个对象相同的主键加载对象。在这里,我看到这2个对象的System.identityHashCode()不同。当处理循环中的第二个对象并尝试保存它时,出现异常:org.hibernate.NonUniqueObjectException:adifferentobjectwiththesameidentifiervaluewasalreadyassociatedwiththesession:尝试用简单的对象模拟这个问题,加载,修改,再次通过PK加载,

java - 在 GAE 上部署应用程序时,为什么没有在数据存储中创建名称为 _BlobInfo_ 的实体种类?

当我们将文件上传到GoogleAppEngine上的Blobstore时,我们发现每次上传都会创建一个类型为_BlobInfo_的实体,可以在位于http的数据存储查看器下的本地开发控制台中看到://localhost:8888/_ah/admin,但是在将应用程序部署到AppEngine之后,当我们将文件上传到Blobstore时,不会创建此类实体。这对我来说很奇怪,想知道我是否在这里遗漏了什么。 最佳答案 _BlobInfo_不是特殊名称,很可能您的应用不会使用此名称创建实体。在生产环境中__BlobInfo__是一个内部名称,

java - 如何对几个实体使用两种不同的 Hibernate 缓存策略

对于我的应用程序,我想对几个实体使用两种不同的hibernate缓存策略。因此(afaik,如果我错了请纠正我)在像这样的实体上使用注释@Cache(usage=ConditionalStrategy)publicclassMyEntity{...}将不起作用,因为“ConditionalStrategy”必须是常量字段(以便与注释一起使用)。我已经了解了如何使用hibernate.cfg文件为每个实体配置缓存策略(参见https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/performance.html#performa

java - 如何在 Spring Data JDBC 中将实体映射到表?

在SpringDataJPA中,我们可以使用@Table注释将实体映射到特定表,我们可以在其中指定模式和名称。但SpringDataJDBC使用NamingStrategy通过转换实体类名将实体映射到表名。例如,如果我们有一个名为MetricValue的实体类,那么该表在默认架构中应命名为metricvalue。但我需要将MetricValue映射到app架构中的metric_value表。有什么方法可以通过注释或任何其他方式覆盖此映射? 最佳答案 SpringDataJDBChasit'sown@Tableannotation还有

java - 使用 JPA 在 GAE 中保存许多实体

我将JPA与GoogleAppEngine结合使用。假设我有一个非常简单的@Entity,由一个键和一个字符串组成,仅此而已。我现在创建了10000个这样的实体,将它们放在一个列表中,现在想存储所有这些实体。如果我尝试使用EntityManagerem和for循环遍历所有实体的List...for(MyEntityentity:listOfAllEntities){em.persist(entity);}..我会得到一个IllegalArgumentException:java.lang.IllegalArgumentException:can'toperateonmultipleen