SND - 实体创建

 

实体主要有两个,一个是【节点实体】 一个是【关系实体】
 1.@NodeEntity
2.@RelationshipEntity

1.节点实体

package org.canaan.neo4j.graph.entity;

import lombok.Data;
import org.canaan.neo4j.graph.convert.MoneyConverter;
import org.neo4j.ogm.annotation.Id;
import org.neo4j.ogm.annotation.Labels;
import org.neo4j.ogm.annotation.NodeEntity;
import org.neo4j.ogm.annotation.Relationship;
import org.neo4j.ogm.annotation.typeconversion.Convert;
import org.neo4j.ogm.annotation.typeconversion.DateLong;

import java.util.Date;
import java.util.Set;

/**
 * {@link @NodeEntity}  label 不指定默认为 类名即: UserNode
 *
 * @author Canaan
 * @date 2019/7/11 8:52
 */
@Data
@NodeEntity(label = "User")
public class UserNode {

    public final static String LABEL_FOUNDER = "Founder";
    public final static String LABEL_PLOUGH  = "Plough";
    public final static String LABEL_SONUZ   = "Sonuz";

    /**
     * {@link @Id} 业务主键,唯一 可以使用 {@link @GeneratedValue} 生成
     *
     * @author Canaan
     * @date 2019/7/11 12:47
     */
    @Id
    private Long userId;


    //@Required 需要企业级neo4j
    private String userName;


    @DateLong   //将日期类型转换为时间戳,或者用 @DateString 转换为String
    private Date createTime;

    @Convert(MoneyConverter.class)
    private Long fundValue;

    /**
     * 在 @NodeEntity  label 后追加 额外的标签
     *
     * @author Canaan
     * @date 2019/7/11 11:56
     */
    @Labels
    private Set<String> labels;

    /**
     * 关系的指定默认是   【-->】
     *
     * @author Canaan
     * @date 2019/7/11 14:31
     */
    @Relationship(type = "SUPERIOR")
    private UserNode parentNode;


    //@PostLoad
    //public void loadData() {
    //当数据加载完成后,将调用该方法
    //    System.out.println("数据加载了");
    //}


}

自定义类型转换器: 

package org.canaan.neo4j.graph.convert;

import org.neo4j.ogm.typeconversion.AttributeConverter;

/**
 * @author Canaan
 * @date 2019/7/11 19:06
 */
public class MoneyConverter implements AttributeConverter<String, Integer> {

    @Override
    public Integer toGraphProperty(String value) {
        return Integer.valueOf(value);
    }

    @Override
    public String toEntityAttribute(Integer value) {
        return value.toString();
    }


}

实体的主要注解在:   org.neo4j.ogm.annotation 包下
字段类型转换器注解在:  org.neo4j.ogm.annotation.typeconversion 包下

注意:

1. 如果字段名为 【id】 面没有注解说明,那么默认返回的是 GraphId
2. NodeEntity type 的默认值为 类名 。
3.@Id 是业务上的,不是由neo4j 生成 

 

文档:

https://docs.spring.io/spring-data/neo4j/docs/5.1.3.RELEASE/reference/html/#reference:annotating-entities:node-entity

实体Id 说明:
https://docs.spring.io/spring-data/neo4j/docs/5.1.3.RELEASE/reference/html/#reference:annotating-entities:graph-id

 

 2. 关系实体, 主要用于复杂的关系映射

package org.canaan.neo4j.graph.entity;

import lombok.Data;
import org.neo4j.ogm.annotation.*;

/**
 * 用户隶属关系
 *
 * @author Canaan
 * @date 2019/7/11 10:10
 */
@Data
@RelationshipEntity(type = Membership.TYPE)
public class Membership {

    public final static String TYPE = "MEMBERSHIP";

    @Id
    @GeneratedValue
    private Long relationshipId;

    @StartNode
    private UserNode startNode;

    @EndNode
    private UserNode endNode;

    public Membership() {
    }

    public Membership(UserNode startNode, UserNode endNode) {
        this.startNode = startNode;
        this.endNode = endNode;
    }
}

 

注意如果关系映射不正确,是无法级联查询其关系节点的

 

文档:

https://docs.spring.io/spring-data/neo4j/docs/5.1.3.RELEASE/reference/html/#reference:annotating-entities:relationship-entity

 

 

 

转载于:https://my.oschina.net/u/2552286/blog/3073017

你提供的 `/etc/modprobe.d/alsa-base.conf` 配置文件内容是用来 **控制 ALSA 音频驱动模块的加载顺序和行为** 的。下面是对每一行配置的解释,以及它们对系统音频设备的影响。 --- ### ✅ 配置详解 #### 🔧 防止某些设备占用 `index=0`(即默认音频设备) 这些行将某些音频设备的索引设置为 `-2`,表示 **禁止这些设备成为默认音频设备(即不会被分配为 `card 0`)**。 ```conf options bt87x index=-2 options cx88_alsa index=-2 options saa7134-alsa index=-2 options snd-atiixp-modem index=-2 options snd-intel8x0m index=-2 options snd-via82xx-modem index=-2 options snd-usb-caiaq index=-2 options snd-usb-ua101 index=-2 options snd-usb-us122l index=-2 options snd-usb-usx2y index=-2 options snd-pcsp index=-2 ``` - 这些设备通常是一些老旧的调制解调器、电视卡、USB 音频接口等。 - 设置 `index=-2` 表示这些设备将不会被 ALSA 自动分配为 `card 0`,避免它们“抢走”默认音频设备的位置。 #### 🚫 特别注意这一行: ```conf options snd-usb-audio index=-2 ``` - 这一行 **禁止 USB 音频设备成为默认声卡(card 0)**。 - 如果你希望 USB 声卡成为默认设备,应 **删除或注释掉这行**(在行首加 `#`)。 --- #### 🎛️ 启用 MPU(MIDI 端口)支持 ```conf options snd-cmipci mpu_port=0x330 fm_port=0x388 ``` - 用于启用 `snd-cmipci` 声卡驱动的 MIDI 支持(老式声卡)。 - 如果你使用的是现代声卡或 USB 音频设备,可以忽略此行。 --- #### 🎧 HDA Intel 声卡配置 ```conf options snd-hda-intel model=auto ``` - 这是用于主板集成声卡(HDA Intel)的配置。 - `model=auto` 表示让 ALSA 自动探测主板音频接口的型号。 - 你可以根据主板型号指定更具体的 `model` 值(如 `model=alienware`、`model=asus` 等)以获得更好的兼容性。 --- ### ✅ 如何让 USB 音频设备成为默认声卡? 如果你希望 USB 音频设备成为默认输出设备(`card 0`),请 **注释掉或删除以下行**: ```conf # options snd-usb-audio index=-2 ``` 改为: ```conf options snd-usb-audio index=0 options snd-hda-intel index=1 ``` 这样: - USB 音频设备成为 `card 0` - 主板集成声卡成为 `card 1` 保存后重启系统即可生效。 --- ### ✅ 总结:关键配置建议 | 目标 | 配置建议 | |------|-----------| | 禁用某些设备占用默认音频设备 | 设置 `index=-2` | | 启用 USB 声卡为默认设备 | 设置 `options snd-usb-audio index=0` | | 设置主板声卡为次优先设备 | 设置 `options snd-hda-intel index=1` | | 保存配置生效 | 修改后重启系统 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值