小编fah*_*dul的帖子

Hibernate 单向 OneToMany 关系与外键非空约束

我有两张这样的桌子

表模式

首先,为了数据完整性,我尝试将表course_id中的外键设置review不为空约束。

所以我为这两个表创建带注释的类,如下所示:

@Data
@Entity
@Table(name = "course")
public class Course {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "course_id")
    private int id;

    @Column(name = "name")
    private String name;

    @OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.ALL)
    @JoinColumn(name = "course_id")
    private List<Review> reviews;

    public Course(){}

    public Course(String name){
        this.name = name;
    }

    public void addReview(Review review){
        if(this.reviews == null){
            this.reviews = new ArrayList<>();
        }
        this.reviews.add(review);
    }
}

@Data
@Entity
@Table(name = "review")
public class Review {
    @Id
    @GeneratedValue(strategy = …
Run Code Online (Sandbox Code Playgroud)

java hibernate

9
推荐指数
1
解决办法
3267
查看次数

Apache Beam 云数据流流卡住侧输入

我目前正在 GCP Dataflow 中构建 PoC Apache Beam 管道。在本例中,我想使用来自 PubSub 的主输入和来自 BigQuery 的侧输入创建流式传输管道,并将处理后的数据存储回 BigQuery。

侧管线代码

side_pipeline = (
    p
    | "periodic" >> PeriodicImpulse(fire_interval=3600, apply_windowing=True)
    | "map to read request" >>
        beam.Map(lambda x:beam.io.gcp.bigquery.ReadFromBigQueryRequest(table=side_table))
    | beam.io.ReadAllFromBigQuery()
)
Run Code Online (Sandbox Code Playgroud)

侧面输入代码功能

def enrich_payload(payload, equipments):
    id = payload["id"]
    for equipment in equipments:
        if id == equipment["id"]:
            payload["type"] = equipment["type"]
            payload["brand"] = equipment["brand"]
            payload["year"] = equipment["year"]

            break

    return payload
Run Code Online (Sandbox Code Playgroud)

主管道代码

main_pipeline = (
    p
    | "read" >> beam.io.ReadFromPubSub(topic="projects/my-project/topics/topiq")
    | "bytes to dict" >> beam.Map(lambda x: json.loads(x.decode("utf-8")))
    | "transform" …
Run Code Online (Sandbox Code Playgroud)

python google-cloud-dataflow apache-beam

8
推荐指数
1
解决办法
1534
查看次数

查询中不使用 PostgreSQL 索引

所以我有一个带有表的 PostgreSQL 数据库,可以跟踪数百万行设备的移动和燃料水平

记录

并在time使用此命令在列上创建索引时使查询更快:

create index gpsapi__index__time on gpsapi (time);
Run Code Online (Sandbox Code Playgroud)

当我尝试像这样使用“EXPLAIN ANALYZE”运行简单命令时

EXPLAIN ANALYZE
SELECT *
FROM gpsapi g
WHERE g.time >= NOW() - '1 months'::interval;
Run Code Online (Sandbox Code Playgroud)

它没有显示查询使用我创建的索引 输出

你知道如何解决这个问题吗?谢谢!

sql postgresql

2
推荐指数
1
解决办法
42
查看次数