我有一个表,其复合主键包含一个序列和两个外键我能够持久化我的实体类但它不是根据序列生成的.具有复合主键的表包含一个序列和两个外键,maven中的hbm2java给出以下实体
这是主要实体
package aop.web.teacher.rmodels;
// Generated Dec 14, 2010 8:45:32 PM by Hibernate Tools 3.2.2.GA
import java.util.Date;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
/**
* Schoolmaster generated by hbm2java
*/
@Entity
@Table(name = "schoolmaster", schema = "public")
public class Schoolmaster implements java.io.Serializable {
private SchoolmasterId id;
...
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "id", column = @Column(name = "id", nullable = false)),
@AttributeOverride(name = "districtId", column …Run Code Online (Sandbox Code Playgroud) 我有一个表,表 PRICING_DATA 中包含以下 json 数据类型列
pricingJson type json nullable
Run Code Online (Sandbox Code Playgroud)
我正在使用sql来查询表。
select * from `PRICING_DATA` where `pricingJson`->"$.product.productFamily" = "Compute Instance";
Run Code Online (Sandbox Code Playgroud)
示例 json 数据如下所示
{
"product": {
"productFamily": "Compute Instance",
"attributes": {
"enhancedNetworkingSupported": "Yes",.....
Run Code Online (Sandbox Code Playgroud)
但查询没有返回任何行。我在这里做错了什么?
来自数据库的 Json 原始字符串似乎被转义了。
"{\"product\":{\"productFamily\":\"Compute Instance\",\"attributes\":{\"enhancedNetworkingSupported\":\"Yes
Run Code Online (Sandbox Code Playgroud)
我已经使用了下面的 json unquote,但它仍然没有给我任何行。
select * from `PRICING_DATA` where JSON_UNQUOTE(JSON_EXTRACT(pricingJson, "$.product.productFamily")) = "Compute Instance";
Run Code Online (Sandbox Code Playgroud) 我已经为hibernate使用了maven插件,并且它生成了实体类而没有标识与ID字段相关的序列,id字段生成为BigDecimal ...现在即使我通过代码指向现有序列,如...
@Entity
@javax.persistence.SequenceGenerator(
name = "SEQ_NATUREMASTER", sequenceName = "aop_teqachers_school_nature_id_seq")
@Table(name = "aop_teachers_school_nature_master", schema = "public", uniqueConstraints = @UniqueConstraint(columnNames = "school_nature"))
public class AopTeachersSchoolNatureMaster implements java.io.Serializable {
/**
* Above code is added after generating entity class
*/
private BigDecimal id;
Run Code Online (Sandbox Code Playgroud)
我收到了错误
INFO : aop.web.teacher.controller.SchoolMasterInsertController - Attemped saving!testnature
Hibernate: select nextval ('aop_teqachers_school_nature_id_seq')
Dec 14, 2010 6:57:26 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet appServlet threw exception
org.hibernate.id.IdentifierGenerationException: this id generator generates long, integer, short or string
at org.hibernate.id.IdentifierGeneratorHelper.get(IdentifierGeneratorHelper.java:123)
at org.hibernate.id.SequenceGenerator.generate(SequenceGenerator.java:101) …Run Code Online (Sandbox Code Playgroud) 尽管findAll在这里工作,但我无法在JPA中持久化实体.这是JpaDAO
package aop.web.teacher.dao;
import java.lang.reflect.ParameterizedType;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceException;
import javax.persistence.Query;
import org.apache.log4j.Logger;
import org.springframework.orm.jpa.JpaCallback;
import org.springframework.orm.jpa.support.JpaDaoSupport;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
public abstract class JpaDAO extends JpaDaoSupport {
protected Class entityClass;
private static Logger log = Logger.getLogger(JpaDAO.class);
@SuppressWarnings("unchecked")
public JpaDAO() {
ParameterizedType genericSuperclass = (ParameterizedType) getClass()
.getGenericSuperclass();
this.entityClass = (Class) genericSuperclass
.getActualTypeArguments()[1];
}
@Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW)
public void persist(E entity) {
getJpaTemplate().persist(entity);
}
@Transactional
public void remove(E entity) {
getJpaTemplate().remove(entity);
} …Run Code Online (Sandbox Code Playgroud) 以下是我的表格格式.表名:: USERS
userid reporttouserid
------ ------------
101 NULL
102 101
103 102
Run Code Online (Sandbox Code Playgroud)
现在我需要一个查询来列出101下的所有子用户ID 102和103两者(103是间接在101以下,因为其父102在101以下)
我在postgresql中看到了常见的表表达式,但却无法弄清楚如何去做.
我有一个 lambda 函数,它每 15 分钟运行一次,并将一些数据保存在 DynamoDB 中。
现在我想保护我的 lambda 发出的 DynamoDB 调用,以便请求不会通过 Internet,而是通过 Amazon 内部网络。不过这里不涉及 EC2 实例。
我看到了一些使用 PrivateLink 的建议,它将 Dynamo 绑定到 VPC 端点,以便从 EC2 实例发出的调用始终通过内部网络绕过 Internet。
我想知道 lamda 调用 DynamoDB 是否可以进行这样的配置,因为 lamda 本身不在任何 EC2 实例中运行并且是无服务器的?
jpa ×3
hibernate ×2
java ×2
postgresql ×2
aws-lambda ×1
aws-vpc ×1
json ×1
mysql ×1
mysql-8.0 ×1
sequence ×1
spring ×1
sql ×1
sqldatatypes ×1