数据库中表和表之间的关联关系 5C

两张表如何不使用外键,用中间表的方式建立一多多的关联关系,求大神解答

4个回答

 不使用外键可以直接使用join查询连接两个表。可以用中间表,也可以不用,都是一样的。
select a.* , b.* from table1 a join table2 b on a.字段=b.字段

http://blog.csdn.net/bestcxx/article/details/52005900 你看下这篇文章,搜索下关键语句 (2)OneToMany(一对多)单向:会产生中间表,此时可以用@onetoMany @Joincolumn(name=" ")避免产生中间表,并且指定了外键的名字(别看@joincolumn在一中写着,但它存在在多的那个表中)

直接用内联方式查询两个表连接

跟外键一样的建表,只是建立普通索引

zhangxinping165
天空之城web 能举个例子吗?
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
设计数据库的时候多个表之间的关联关系
设计数据库的时候遇到了一个问题 比方说目前有四张表 试卷表 问题表 答案表 错题表,试卷表关联着问题表,问题表关联着答案表和错题表 然而这个错题表又同时关联了试卷表,答案表,问题表。。 类似于这中的,感觉通过问题表可以查出试卷表和答案表,那这个错题表还有必要关联这两个表吗? 也不知道关联关系过多的话有没有什么样的弊端呢? 希望朋友们提点提点、、、
oracle数据库中有多张表,如何查看其中两个表之间是否存在关联,以及他们关联的字段。
我目前用的是pl/sql对数据库进行操作,数据库中大概有几百张表,我想看看这些表之间有没有关联关系(我需要用到的两张表有没有关联关系以及是通过那些字段关联的)。我试着用网上的方法:新建一个diagram window,然后把我想查看的两张表托进去,问题我看不太懂这里面的关系。望各位大神告知啊。
ROR怎样处理关联数据库表?
ROR怎样处理关联数据库表? 一个页面表单涉及2个数据库表是,提交的时候怎么同时修改2个数据库表。 比如: 表1:people: id name age 表2:mobile: id phonenum people_id 表1和表2之间的关系: people.rb class People < ActiveRecord::Base has_many :mobiles end mobile.rb class Mobile < ActiveRecord::Base belongs_to :people end 在一个/views/Mobile/new.rhtml页面中怎么处理people?提交后在控制器中应该怎么做?
hibernate的关联可以代替数据库外键进行约束?
本来还挺明白,我百度了一下“hibernate没有外键的2张表如何进行关联”很多回答不需要外键也能进行关联,越看越玄乎,最后甚至看到了“不需要数据库的外键约束,hibernate配置好关联就行"的定论,我整个人都炸了,hibernate有这么强大?怎么不上天呢?2个问题,请各位回答下: 1.没有外键的2张表真的能建立一对多,多对一等等这些关联?且不说能不能关联,就算能关联,没有下面数据库外键支持的关联有个卵用?我怎么知道这张表的某条数据与另一张表中某些纪录有关?凭什么?更不用说通过一个持久化的实例查出其域中相关联的另一个类实例的属性了(a.b.getxxx()),而且我写了个测试,没有外键与域中关联类的实例做映射,在生成的sql中直接把相关联类实例的名字当作字段进行数据操作,肯定报错啊!也就是说根本不能在域中将关联类的实例作为成员,所以 没有外键的2张表真的能建立关联,还是我认识有局限方法不对? 2.如果我的想法是对的,也就是说没有外键不能建立2个实体类之间多对一等这些关联,那么所谓“hibernate配置关联取代外键约束“是怎么一回事,无论是实际操作还是企业环境中,都觉得外键有必要但是成本太高,数据库的变动拓展起来太麻烦,所以我在想 他们的”hibernate配置取代数据库外键约束"肯定是跟关联设置无关的,这个只影响查询吧,所以他们是再说"我不用外键,我也不用关联,所有的有关系的表,在数据操作时,让开发人员去记,用程序员的sql去维护表之间的约束"这种看起来可行,但出错率高看起来很蠢的方法吧? 内容很多很绕口,感谢看完的你们,希望懂得人能回答一下,我是真的被百度的神人们给弄晕了,感激不尽!
python+django能够同时使用mongodb和mysql两种数据库引擎吗?
各位朋友们好,我原来做一个项目:因为表没有关联,所以用的是非关系型数据库mongodb,项目开发环境用的是python+django,部署在ubuntu上。当时用了pymongo做python和mongodb的连接,用mongoengine做了django与mongodb的连接。 现在来了新的需求,表之间有关联,因此我准备添加一个mysql数据库。 请教各位朋友们,django展示网页的时候,能够同时展示mongodb中表的内容和mysql中表的内容吗?settings.py中应该如何配置数据库呢? 希望朋友们能指点一下,万分感谢。
web数据库设计的问题
大家在工作的项目中,其数据库设计的表是否会给他们主外键的关系,或只是给一个相关联的列来维护其关系。 例如: create table a( aid int primary key, name varchar(20) not null ) create table b( bid int primary key, aid int not null, email varchar(30) not null ) 在表 a 和表 b 中,a.aid 和 b.aid 是维护两张表之间的关系的列。 ?????
怎么用程序保证表之间的关联,而不是主外键?
今天看到这个问题有点疑惑:网上说为了保证数据操作及维护,不建立任何外键,用程序保证关联关系,不建立任何外键关系我明白了,但不知道怎么用程序保证关联关系,,这句话是什么场景,又怎么保证联表查询那???
简单微博服务器端关联对象之间的关系处理
public class User{ private Integer id; private String name; private String password; private String picture; private String trueName; private Integer age; private Date lastLoginTime; private Date registerTime; private Boolean isActivity; private String lastLoginIp; private Set<MicroBlog> blogs = new HashSet(); private Set<User> fans = new HashSet(); private Set<User> idols = new HashSet(); private Set<Collection> collections = new HashSet(); private Set<Comment> comments = new HashSet(); private Set<Transmit> transmits = new HashSet(); } 上面这是微博的User类,下面是微博的微博内容类: public class MicroBlog { private Integer id; private String content; private String face; private String picture; private String music; private String video; private Date time; private String ip; private User user; private Set<Collection> collections = new HashSet(); private Set<Transmit> transmits = new HashSet(); } 用户类里面有该用户所发布过的所有微博的集合属性值,微博类里面有发布该微博的用户属性。现在的问题是有一个用户发布微博时,服务器端接收到了该用户的id和微博的内容,我现在得把这条微博存储到数据库中,然后我得根据获取到的用户id,去数据库中取出该用户的对象user,但是取user时会调用根据用户id去取他所发布过的微博集合的方法,但是根据用户id去取他所发布过的微博集合的方法中又调用了根据用户的id去取该用户对象的方法(因为数据库微博表中记录的是发布微博的用户的id值),这样就形成了循环调用了,我该怎么解开这种死循环调用呀?
mongodb数据库设计???
最近在做一个类似问卷调查的系统,需求是需要动态地生成一份调查问卷,调查问卷里面包含一些模块,但是每个模块的数据结构不一样,有的是直接填写的,有的是里面含有一些问题的,而且里面的问题类型还不一样,有的是纯填空题,有的是选择题,看了下文档,经理觉得用mongodb可能比关系型数据库更容易实现,但我应该怎么去关联调查问卷 - 模块 - 问题 之间的关系呢 ![图片说明](https://img-ask.csdn.net/upload/201601/04/1451886663_608458.png)
EF为存在的表新增外键
请问: 如何在C#中使用EF为已存在的两张数据表新增外键约束关系! 描述: 在一个解决方案可的两个项目中,两个独立的数据源。A数据源中的company表要和B数据源的project表建立一对多的关系。 在微软官方教程上没有。教程中都讲的是一个数据源。 http://www.entityframeworktutorial.net/code-first/configure-one-to-many-relationship-in-code-first.aspx https://msdn.microsoft.com/en-us/library/jj591620(v=vs.113).aspx 而且建立外键关系时同时创建了数据表。没有看到对已存在的两张表新建关系。 目前在A数据源中companyInfo类中加了一条语句: public virtual ICollection<ProjectInfo> ProjectInfoes { get; set; } 用来建立companyInfo表和projectInfo表之间的外键关系。update-database数据源A后。在B数据源也需要update-database,因为B数据源中的projectInfo 表和该数据源中其他表也有外键关联。在SQL Server 2008R2中为一个数据库。因此会报错:project表已在。如下图![图片说明](https://img-ask.csdn.net/upload/201710/21/1508555645_923933.png):请大家帮看一下吧!谢谢!
一个字段存储多个ID可不可以
一个字段存储多个ID 比如电影和演员这样多对多的关系 电影表中用一个字段保存多个演员的id,用分号隔开 这样省去了电影和演员之间的关联表 这样做可以吗?有什么坏处?
hibernate中的映射文件
小弟刚刚接触hibernate,其中有多种关联关系,对关联关系在映射文件中的配置不是太熟悉。感觉hibernate中的映射文件就是在数据库表中建立各种主外键的关系。不知道这种理解对不对。呵呵请大哥大姐们给讲讲。能不能在推荐推荐什么资料看看就好了。 [b]问题补充:[/b] hibernate映射文件中的<many-to-one>,<one-to-one>,<one-to-many>的作用是不是就是反应数据库表中的主外键之间的关系???
关于hibernate建表的疑惑
[size=medium]据说实际过程中都是先建表再建类,那如果实体类之间存在一对多等单向或双向的关联,难道这时是自己直接在数据库表中定义外键?(这种关系在数据库中不是很清晰啊)然后再反向工程生成的类中的属性逻辑还对吗? 实际中如果是先建表,然后反向工程生成实体类?一般应该不能一步到位啊,如果我想要在一个实体类中有Set<T>用于一对多,反向工程之后能得到这种属性吗? 以前就算是简单的POJO都要修改映射文件,如果映射文件改了,对应的数据库也会因此发生改变吗? 有实际开发经验的谈谈,谢了。[/size]
MySQL 如何仅用一条SQL语句或存储过程或自定义函数 判断两条记录之间是否存在层级关联
![图片说明](https://img-ask.csdn.net/upload/201901/18/1547775595_628892.jpg) > 表格不止四个,还可能有表E、F、G。 数据库表之间的关系如图,子表的每条记录通过'parent_id'和'parent_table'两个属性指向父表的一条记录。所有表均包含这两个属性(A表中该值为空)。 如何只用一条SQL语句(或者写一个存储过程、自定义函数)用以判断任意两条记录之间知否有层级间的从属关系? 我尝试用动态执行SQL语句和递归去实现,但是由于技艺不精都失败了。请问各位大大这可如何是好啊~
hibernate中映射多对多的问题
在hibernate中,如果要映射多对多的映射比如有两个实体:user, privilege,数据库中通过link表来表示两者的关联关系,单在link中有一个flag标识是否有效,这样怎样在hibernate中解决?拆成两个一对多?还有没有其他方法? [b]问题补充:[/b] 我的意思是link中除了那三个字段之外,我还有一个字段表示这个关系是否生效,也就是说,这个字段是重点,在业务中要靠这个字段来确定映射关系是否有效。谢谢 [b]问题补充:[/b] formular我试过 可是如果我的需求是动态的,怎么办? 其实这才是我的真正问题。 我的意识是flag有很多种值,我需要根据业务选择不同的值,用where只能产生死的值。 [b]问题补充:[/b] 比如说:User和Role之间的多对多关系,中间表USER_ROLE中不仅有user_id和role_id,还有两个子段,标识有效期。有一个是begin_date,一个是end_date。具体到业务上:一个是查询某个user现在所拥有的role,另外一个是:曾经拥有的role。 [b]问题补充:[/b] 感谢回答。
一个ssm项目只给了映射文件,需要我创建数据库,但是有些问题,
controller取不到数据库的值,方法里写了打印输出语句输出为空,想让各位看下表是否有问题。 一共四个映射文件 admin_info表 ``` <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.digital.dao.AdminInfoDAO"> <select id="getAdminInfoByCond" parameterType="com.digital.pojo.AdminInfo" resultType="com.digital.pojo.AdminInfo"> select * from admin_info where name=#{name} and pwd=#{pwd} </select> <select id="getAdminInfoFunctions" parameterType="int" resultMap="getAdminInfoFunctionsMap"> select ai.id,ai.name,f.id fuid,f.name fname,f.parentid fpid,f.isleaf fisleaf,f.nodeorder fno from admin_info ai left join powers p on ai.id=p.aid join functions f on p.fid=f.id where ai.id=#{id} ORDER BY fpid </select> <resultMap type="com.digital.pojo.AdminInfo" id="getAdminInfoFunctionsMap"> <id property="id" column="id"/> <result property="name" column="name"/> <collection property="fs" ofType="com.digital.pojo.Functions"> <id property="id" column="fuid"/> <result property="name" column="fname"/> <result property="parentid" column="fpid"/> <result property="isleaf" column="fisleaf"/> </collection> </resultMap> <select id="getAllAdminInfo" resultType="com.digital.pojo.Functions"> select * from admin_info </select> <select id="getAdminById" parameterType="int" resultType="com.digital.pojo.AdminInfo"> select * from admin_info(name,pwd,role) values(#{name},#{pwd},#{role}) </select> </mapper> ``` ![图片说明](https://img-ask.csdn.net/upload/201904/18/1555592692_131715.png) functions表 ``` <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.digital.dao.FunctionsDAO"> <select id="getAllFunctions" resultType="com.digital.pojo.Functions"> select * from functions </select> </mapper> ``` ![图片说明](https://img-ask.csdn.net/upload/201904/18/1555593008_498896.png) powers表 ``` <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.digital.dao.PowersDAO"> <select id="delPowersByAdminid" parameterType="int"> delete from Powers where aid=#{aid} </select> <!-- 保存管理员和系统功能之间的关联关系信息 --> <insert id="addPowers" parameterType="java.util.Map"> insert into powers(aid,fid) values(#{aid},#{fid}) </insert> </mapper> ``` ![图片说明](https://img-ask.csdn.net/upload/201904/18/1555592859_4441.png) user_info 表 ``` <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.digital.dao.UserInfoDAO"> <select id="getUserInfoByCond" parameterType="com.digital.pojo.UserInfo" resultType="com.digital.pojo.UserInfo"> select * from user_info where userName=#{userName} and password=#{password} </select> <select id="getUserListByPage" parameterType="java.util.Map" resultType="com.digital.pojo.UserInfo"> <if test="userName!=null and userName!=''"> select * from user_info where userName LIKE CONCAT(CONCAT('%',#{userName}),'%') limt #{start},#{limt} </if> <if test="userName==null or userName==''"> select * from user_info where limt #{start},#{limt} </if> </select> <select id="getAllUser" parameterType="String" resultType="com.digital.pojo.UserInfo"> <if test="_parameter!=null and _parameter!=''"> select * from user_info where userName LIKE CONCAT(CONCAT('%',#{_parameter}),'%') </if> <if test="userName==null or userName==''"> select * from user_info </if> </select> <select id="updateUserStatus" parameterType="java.util.Map"> <if test="flag==0"> upadate user_info set status=0 where id in </if> <if test="flag==1"> update user_info set status=1 where id in </if> <foreach item="item" index="index" collection="ids" open="(" separator="," close=")"> #{item} </foreach> </select> </mapper> ``` ![图片说明](https://img-ask.csdn.net/upload/201904/18/1555592952_239120.png) 这是mybatis的配置 ``` <!-- 配置mybatis工厂 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 注入数据源 --> <property name="dataSource" ref="dataSource"/> <!-- 指定mybatis映射文件位置 --> <property name="mapperLocations" value="classpath*:com/digital/mapping/*Mapper.xml"/> </bean> <!--配置MapperScannerConfigurer,DAO接口所在包名,Spring会自动查找其下的类 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.digital.dao"/> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> </bean> ``` 配置文件所在的包 ![图片说明](https://img-ask.csdn.net/upload/201904/18/1555594856_354610.png) 项目的部分目录 ![图片说明](https://img-ask.csdn.net/upload/201904/18/1555598353_700162.png)
关于sql性能问题,很难自己解决,请各位帮忙下
Sql 性能问题 T_plan表和t_plan_detail表为主从关系表,靠plan_id外键关联(存在索引)。 其中t_plan 100万行记录,t_plan_detail 1000万行记录,t_plan_detail.item_code上有索引。 简述下面sql语句有什么性能问题 (1)select count(*) from t_plan_detail t1 left join t_plan t2 on t1.plan_id = t2.plan_id where t2.item_code = ‘P004’ 上面提示说两处性能问题 (2)select count(1) from t_plan whre plan_id in( Select plan_id from t_plan_detail where item_code =’p004’ ) and plan status in(4,60) (3) Select plan_code , plan_status , create_date –create_date是t_plan_detail 的字段 From (select a.create_userid ,a.plan_code ,a..plan_status ,b* From t_plan a ,t_plan_detail b Where a.plan_id = b.plan_id And b.item_code =’p004’ Order by b.create_date , a.plan_code ) X Where x.create_userid = 1 order by x..plan_code desc 上面提示有三个性能问题 (4) 在某个数据表中有1000条记录,假设某状态字段有10个不同的值,且记录中状态的分布值会均等,那么按照该状态创建的索引的选择率是 A 10% B 50% C 90% D:100% E 都不对,请填写正确的值 库存明显帐invssummary表,存在下面一些字段 Columunname 字段含义 Year 年 Month 月 Plant 日 Productcode 产品编号 Productname 产品名称 Spec 规格 Warehouseid 仓库id Warehousename 仓库名称 Amount 库存金额 现在抽取每个仓库每月的库存金额排名前3的产品资料 ,请给出sql语句 (5)某集团公司以及北京,南京和上海分公司使用某套企业管理系统,要求不同岗位的用户分别有不同的权限,比如主数据管理和业务操作权限等,如何实现这些不同岗位的用户之间的权限管理?请先假设需求场景,再用你最熟悉的建模语言来表达你的设计思想 这道题更是没头绪,请各位给点思想
Jpa方式多对多关系中实体对象间如何通过一个实体获取另一实体的对象
<div class="iteye-blog-content-contain" style="font-size: 14px;"> <p>项目是ssh三大框架的,数据库是通过实体对象PO用注解的方式生成的。现在有两个PO实体,一个是角色,一个是菜单。他们之间是多对多关系,数据库会生成一张中间的关联表(仅包含ROEL_ID和TREE_ID),现在我想做权限分配,就是实现根据角色分配菜单的功能。在RoleAction这边想通过roleService.getRole(id).getTrees()的方式得到该角色下相应的菜单,但总是报如下错误:</p> <p><span style="color: #ff0000;">org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: wteam.pojo.RolePO.trees, no session or session was closed</span></p> <p><span style="color: #000000;">类RolePO和TreePO如下,Role是维护端,网上很多说多对多用懒加载的方式比较好,但是报错说session关闭了我又取不到结果。我如果换成急加载的方式,是能得到该RoleI下的Tree表了,但是查询Role表就出现问题了,记录会变成很多条,而且还是重复的。就是不知道哪里出了问题</span></p> <p> </p> <pre name="code" class="java">public class RolePO implements Serializable{ @Entity @Table(name="sys_role") public class RolePO implements Serializable{ //角色PO private static final long serialVersionUID = -6889909565150942238L; @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name = "ROLE_ID") private int roleId; //角色标识位 @Column(name = "NAME",unique = true,nullable = false) private String name; //角色名称 @Column(name = "DISCRIPTION") private String discription; //角色描述 @ManyToMany(targetEntity = TreePO.class, cascade = CascadeType.REFRESH) @JoinTable(name = "sys_role_tree_menu", joinColumns = { @JoinColumn(name = "ROLE_ID")}, inverseJoinColumns = { @JoinColumn(name = "TREE_ID") }) private List&lt;TreePO&gt; trees; //省略set、get方法 } </pre> <p> </p> <pre name="code" class="java">@Entity @Table(name="sys_tree_menu") public class TreePO implements Serializable{ private static final long serialVersionUID = -1549993655782216421L; //菜单PO @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name = "TREE_ID") private int treeId; //树形导航标识位 @Column(name = "NAME",unique = true,nullable = false) private String name; //名称 @ManyToMany(cascade = CascadeType.MERGE,mappedBy = "trees") private List&lt;RolePO&gt; roles; //省略其他属性、set()、get()... } </pre> <p> </p> <p> </p> </div>
Hibernate软删除
问题描述: 先说数据库设计吧,系统中所有的实体表全部都有Status这个属性,Status这个属性的作用是来控制该记录是否已被删除(删除一个实体对象,只是将Status设置成false)。 由于使用了Hibernate,并且通过在Hibernate配置,一个实体类可以load起关联的其他实体。那么,正常情况下并不会有问题,但是当该实体对象持有的其他实体对象被删除了,那么逻辑上,该对象是不应该持有被删除后的对象,但由于,系统只是update了Status属性,而且关联关系仍然存在,并且这些关联关系是通过Hibernate来管理,无法通过(或者说我不想绕过)Hibernate进行删除。 例如,User类有Set<Role>属性,Hibernate在加载User对象的时候,也会将Set<Role>也加载好,而他们之间的关联关系是通过Hibernate来控制的。假设,用户test有三个角色:sales,finacer跟master。而master后来被删除了,也就是Status属性被设置成了false。但是,User与Role之间的关系,并没有因为master被删除了而消失,于是系统加载test对象的时候,仍然将master对象加载到内存中,这样明显是违背了逻辑,请问这种情况,如何通过Hibernate来解决。 User类: [code="java"] public class User extends BaseModel { /** * */ private static final long serialVersionUID = 613756860331359836L; private Integer userId; private String username; private String password; private Set<Role> roleSet; /** default constructor */ User() { } } [/code] Role类: [code="java"]public class Role extends BaseModel { /** * */ private static final long serialVersionUID = 2041913483578524972L; private Integer roleId; private String roleName; private String roleAlias; /** default constructor */ Role() { } }[/code] Mapping文件: User.hbm.xml [code="xml"] <hibernate-mapping default-access="field"> <class name="User" table="T_User"> <id name="userId" column="UserId" type="integer"> <generator class="native" /> </id> <property name="username" column="Username" type="string" length="50" not-null="true" update="false" /> <property name="password" column="Password" type="string" length="50" not-null="true" /> <!-- 用户持有的角色 --> <set name="roleSet" table="T_User_Role_Link" cascade="all" lazy="false"> <key column="UserId" /> <many-to-many column="RoleId" class="Role" outer-join="auto" /> </set> <!-- 创建人 --> <many-to-one name="creator" class="User" column="Creator" cascade="all" update="false" /> <!-- 创建时间 --> <property name="createTime" column="CreateTime" type="timestamp" update="false" /> <!-- 修改人 --> <many-to-one name="modifier" class="User" column="Modifier" cascade="all" /> <!-- 修改时间 --> <property name="modifyTime" column="ModifyTime" type="timestamp" /> <!-- 数据状态 --> <property name="status" column="Status" type="enums.type.StatusType" /> </class> </hibernate-mapping> [/code] Role.hbm.xml [code="xml"] <hibernate-mapping default-access="field"> <class name="Role" table="T_Role"> <cache usage="read-write" /> <id name="roleId" column="RoleId" type="integer"> <generator class="native" /> </id> <property name="roleName" column="RoleName" type="string" length="50" /> <property name="roleAlias" column="RoleAlias" type="string" length="50" /> <!-- 创建人 --> <many-to-one name="creator" class="User" column="Creator" cascade="all" update="false" /> <!-- 创建时间 --> <property name="createTime" column="CreateTime" type="timestamp" update="false" /> <!-- 修改人 --> <many-to-one name="modifier" class="User" column="Modifier" cascade="all" /> <!-- 修改时间 --> <property name="modifyTime" column="ModifyTime" type="timestamp" /> <!-- 数据状态 --> <property name="status" column="Status" type="enums.type.StatusType" /> </class> </hibernate-mapping>[/code] [b]问题补充:[/b] To cwx714, 可能你还是没有理解我的意思。我这样的配置,是全部交给Hibernate来做。也就是说,Hibernate返回的是一个完整的对象,而不是先返回一个单表的User对象,然后再根据与User关联的表中的值去找相应的其他实体的对象。即,从DAO取出来的User对象就已经包含了Set<Role>中所有的值。 [b]问题补充:[/b] 我希望是通过Hibernate来配置,而不是硬编码一堆的where语句。否则,这个根本就不是问题。 [b]问题补充:[/b] 而且,我对Role表是有进行缓存的,如果没有办法剔除那些Status=false的值,那么Hibernate还是要缓存所有的记录,这样,如果数据量少的话是没有问题,但是当数据量达到一定程度时,问题就大了。 [b]问题补充:[/b] To:phenom, 呵呵,我对hibernate实在不熟。但是在我的代码中,Role是没有Set<User>属性的,即,User跟Role是一对多的关系,但是,没有办法从Role获取到所有拥有该角色的User。也就是说,控制方在User这边。 按照你说的,那么,我如果要删除Role对象,我是不是要先查找所有拥有该角色的User,然后遍历列表,删除?
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
开源一个功能完整的SpringBoot项目框架
福利来了,给大家带来一个福利。 最近想了解一下有关Spring Boot的开源项目,看了很多开源的框架,大多是一些demo或者是一个未成形的项目,基本功能都不完整,尤其是用户权限和菜单方面几乎没有完整的。 想到我之前做的框架,里面通用模块有:用户模块,权限模块,菜单模块,功能模块也齐全了,每一个功能都是完整的。 打算把这个框架分享出来,供大家使用和学习。 为什么用框架? 框架可以学习整体
源码阅读(19):Java中主要的Map结构——HashMap容器(下1)
(接上文《源码阅读(18):Java中主要的Map结构——HashMap容器(中)》) 3.4.4、HashMap添加K-V键值对(红黑树方式) 上文我们介绍了在HashMap中table数组的某个索引位上,基于单向链表添加新的K-V键值对对象(HashMap.Node&lt;K, V&gt;类的实例),但是我们同时知道在某些的场景下,HashMap中table数据的某个索引位上,数据是按照红黑树
c++制作的植物大战僵尸,开源,一代二代结合游戏
    此游戏全部由本人自己制作完成。游戏大部分的素材来源于原版游戏素材,少部分搜集于网络,以及自己制作。 此游戏为同人游戏而且仅供学习交流使用,任何人未经授权,不得对本游戏进行更改、盗用等,否则后果自负。 目前有六种僵尸和六种植物,植物和僵尸的动画都是本人做的。qq:2117610943 开源代码下载 提取码:3vzm 点击下载--&gt; 11月28日 新增四种植物 统一植物画风,全部修
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
深度学习图像算法在内容安全领域的应用
互联网给人们生活带来便利的同时也隐含了大量不良信息,防范互联网平台有害内容传播引起了多方面的高度关注。本次演讲从技术层面分享网易易盾在内容安全领域的算法实践经验,包括深度学习图
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程实用技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法,并会持续更新。
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
"狗屁不通文章生成器"登顶GitHub热榜,分分钟写出万字形式主义大作
GitHub 被誉为全球最大的同性交友网站,……,陪伴我们已经走过 10+ 年时间,它托管了大量的软件代码,同时也承载了程序员无尽的欢乐。 万字申请,废话报告,魔幻形式主义大作怎么写?兄dei,狗屁不通文章生成器了解一下。这个富有灵魂的项目名吸引了众人的目光。项目仅仅诞生一周,便冲上了GitHub趋势榜榜首(Js中文网 -前端进阶资源教程)、是榜首哦
推荐几款比较实用的工具,网站
1.盘百度PanDownload 这个云盘工具是免费的,可以进行资源搜索,提速(偶尔会抽风????) 不要去某站买付费的???? PanDownload下载地址 2.BeJSON 这是一款拥有各种在线工具的网站,推荐它的主要原因是网站简洁,功能齐全,广告相比其他广告好太多了 bejson网站 3.二维码美化 这个网站的二维码美化很好看,网站界面也很...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
相关热词 c#处理浮点数 c# 生成字母数字随机数 c# 动态曲线 控件 c# oracle 开发 c#选择字体大小的控件 c# usb 批量传输 c#10进制转8进制 c#转base64 c# 科学计算 c#下拉列表获取串口
立即提问